您的位置:首页 > 其它

get all Palindromes of a string

2016-07-30 19:20 323 查看
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));
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: