求出所有回文子串及最大回文子串
public class TestMostReverse {
/**
* zty
*/
public String[] getPalindromeString(String inputString) {
int len = inputString.length();
String s1[] = new String[len * (len + 1) / 2];
String s2[] = new String[len * (len + 1) / 2];
int n = 0;
for (int i = 0; i < len; i++) {
for (int j = 0; j < i + 1; j++) {
String sub = inputString.substring(j, len - i + j);
String subReverse = new StringBuffer(sub).reverse().toString();
if (sub.equals(subReverse)) {
s1[n] = sub;
n++;
}
}
}
int m = 0;
int maxlen = 0;
if (s1[0] != null) {
maxlen = s1[0].length();
for (int i = 0; i < n; i++) {
if (s1[i].length() == maxlen) {
s2[m] = s1[i];
m++;
}
}
}
//未考虑重复
System.out.println("所有回文子串:");
for(int i=0;i<n;i++)
{
System.out.println(s1[i]);
}
System.out.println("最大回文子串:");
for(int i=0;i<m;i++)
{
System.out.println(s2[i]);
}
return s2;
}
String getMostReverse(String str){
int len = str.length();
for(int i =0;i<len;i++){
for(int j=0;j<i+1;j++){
String sub = str.substring(j,len - i + j);
String subRever = new StringBuffer(sub).reverse().toString();
if(sub.equals(subRever))
{
return subRever;
}
}
}
return "不是回文子串";
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new TestMostReverse().getMostReverse("ababbac"));
System.out.println(new TestMostReverse().getPalindromeString("ababbac"));
}
}