get all Palindromes of a string

来源:互联网 发布:java微信 api好友列表 编辑:程序博客网 时间:2024/05/21 19:52
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));            }        }    }

0 0