public static void main(String[] args) {
AllPalindromes a = new AllPalindromes();
for (String str: a.getAllPalindrome("accbrrbccai2")){
System.out.println(str);
};
System.out.println();
System.out.println(a.longestPalindrome("accbrrbccai2"));
}
List<String> res = null;
public List<String> getAllPalindrome(String str) {
res = new LinkedList<>();
if (str == null || str.length() <= 1) {
return res;
}
for (int i = 0; i < str.length() * 2 - 1; i++) {
int left = i/2;
int right = (i)/2;
if (i%2 == 1) {
right++;
}
getPalindrome(str, left, right);
}
return res;
}
private void getPalindrome(String str, int left, int right){
while (left >= 0 && right < str.length() && str.charAt(left) == str.charAt(right)) {
left--;
right++;
if (right - left > 2) {
res.add(str.substring(left + 1, right));
}
}
}
get all Palindromes of a string
最新推荐文章于 2018-11-20 08:46:41 发布