找出字符串中最长的回文子串
马拉车算法
自己的做法:
①:asd的字串也是回文字符串,单个字符肯定是回文字符串。
②:所有当长度为1的时候,肯定是会回文字符串。
class Solution{
public boolean decide(String data,int begin,int end) {
int i=begin,j=end;
while(j>=i) {
if(data.charAt(i)!=data.charAt(j)) return false;
i=i+1;
j=j-1;
}
return true;
}
public String longestPalindrome(String s) {
if(s.length()==0) return "";
else if(s.length()==1) return s;
else {
int result=0;
int loop=0;
for(int i=0;i<s.length();i++) {
for(int j=i+1;j<s.length();j++) {
if(s.charAt(i)==s.charAt(j)) {
if(decide(s,i,j)) {
if(j-i+1>result) {
result=result=j-i+1; //记录了字符串的长度
loop=i;
}
}
}
}
}
if(result==0) return s.charAt(0)+"";
else {
// System.out.println(loop);
// System.out.println(result);
String result9="";
for(int p=loop;p<loop+result;p++) {
result9+=s.charAt(p)+"";
}
return result9;
}
}
}
}