java力扣LeetCode
给你一个字符串 s,找到 s 中最长的回文子串。
class Solution { public String longestPalindrome(String s) { String res = null ; int m=0; int flag=0; for(int i = 0;i方法二i;j--) { if(s.charAt(i)==s.charAt(j)) { int a=i; int b=j; int k; int temp=0; flag=0; for( k =a; k<=b;k++) { System.out.print(k); if(s.charAt(k)!=s.charAt(b-temp)) { flag=1; break; } temp++; } if(flag==0) { if((b-a)>m) { m=b-a; res=s.substring(a,b+1); } } } } } if(m==0) { return s.substring(0,1); } return res; } }
扩展法,遍历一遍,选取其中一位进行左右扩展,分为奇偶两种情况
class Solution { public String longestPalindrome(String s) { String res =null; int m=0; int right,left; for(int i=0;i=0&&right =0&&left m) { m=left-right; res=s.substring(right,left+1); } } //偶 for(right=i,left=i+1;right>=0&&right =0&&left m) { m=left-right; res=s.substring(right,left+1); } } } if(m==0) { return s.substring(0,1); } return res; } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)