package palindrome; import java.util.Stack; /** * 找到最大回文 * @author root */ public class FindMaxPalindrome { static String ss = "aaabcadasabcddcbaddbc"; public static void main(String[] args) { // TODO Auto-generated method stub find(ss.toCharArray()); } public static void find(char []s){ int max_l = 1; for(int i=0,j=0,k=0; k<s.length; k++){ //char c = ss.charAt(k); int cur_l = 0; i=k+1; j=k-1; while(i<s.length && j>=0 && s[i]==s[j]){ cur_l++; i++; j--; } if(cur_l>max_l){ max_l = cur_l; } cur_l = 0; i=k+1; j=k; while(i<s.length && j>=0 && s[i]==s[j]){ cur_l++; i++; j--; } if(cur_l>max_l){ max_l = cur_l; } } System.out.println(max_l); } }
package huiwen; import java.util.Stack; /** * 找到最大回文 * @author Administrator * */ public class Huiwen { public static void main(String[] args) { // TODO Auto-generated method stub String str = "aabcbaded"; hui(str.toCharArray()); } static int begin = 0; static int length = 0; public static void hui(char []data){ for(int i=1; i<data.length; i++){ judge(data, i-1, i); judge(data, i-2, i); } print(data); } public static void judge(char []data,int left,int right){ while(left>=0 && right<data.length && data[left]==data[right]){ --left; ++right; } int temp_length = right - left-1; if(length < temp_length){ begin = left+1; length = temp_length; print(data); } } public static void print(char []data){ System.out.println(begin+"*"+length); for(int i=0; i<length; i++){ System.out.print(data[i+begin]); } System.out.println(); } }