1. 题目描述(中等题目)

- 就是查找字符串中最长的一个回文字串,结果唯一
2 我的解法
思路:暴力解法,滑动窗口。从大到小查找,每一个窗口的内容都判断是否时回文,是,就直接返回结果。这样做保证返回的最长回文字串之一。1//题目思路是 设置滑动窗口,从大到小查找2class Solution {3public boolean isPalindromic(String s,int start,int end)4{5while(start<end)6if (s.charAt(start++)!= s.charAt(end--))7return false;8return true;9}10public String longestPalindrome(String s) {11int n = s.length();12if(n==0)//注意判空13return "";14for(int w=n ; w>1 ; w--)//窗口大小15{16for(int i=0,j=i+w-1;j<n&&i<n;i++,j++)17{18if(isPalindromic(s,i,j))19return s.substring(i,j+1);20}21}22return String.valueOf(s.charAt(0));23}24} - 时间复杂度:最坏O($n^3$)。主函数与两层循环,每次循环的最大值都是n,所以是$n^2$,在判断回文串时,最大值是n,所以一共O($n^3$)
- 空间复杂度:O(1)