优化Palindrome子串识别

时间:2016-11-02 04:58:31

标签: java performance substring palindrome processing-efficiency

我目前正试图找到一种让我的程序更高效运行的方法。如果有人对如何优化我的程序有任何想法,我会非常感激。 此外,输出必须按字母顺序显示,没有任何重复。

package Palindrome;
import java.io.*;
import java.util.*;
public class Palindrome {

public static void main(String[] args)throws IOException{
        Scanner scan;   
        scan = new Scanner(System.in);
        while (scan.hasNext()) {

    subPal(scan.next());
            }
        if (scan != null) {
            scan.close();
        }}


private static void subPal(String str) {
    String s1 = "";
    int N = str.length();
    ArrayList<String> palindromeArray = new ArrayList<String>();
    for (int i = 2; i <= N; i++) {
        for (int j = 0; j <= N; j++) {
            int k = i + j - 1;
            if (k >= N)
                continue;
            s1 = str.substring(j, i + j);
            if (s1.equals(new StringBuilder(s1).reverse().toString())&& !palindromeArray.contains(s1)) {
                palindromeArray.add(s1);
            }
        }

    }
    Collections.sort(palindromeArray);
    for (String s : palindromeArray)
        System.out.println(s );

}

}

0 个答案:

没有答案