-4

配列には、回文の文字列とその他の文字列が含まれます。文字列逆メソッドを使用せずに回文文字列を分離しますか?

4

2 に答える 2

1
public boolean isPalindrome(String pal) {

    if (pal.length() <= 1) {
        return true;        // BASE CASE.
    }

    // Get the first and last characters of the String.
    char first = pal.charAt(0);
    char last = pal.charAt(pal.length()-1);

    if (Character.isLetter(first) && Character.isLetter(last)) {

        if (first != last) {
            return false;           // BASE CASE.
        }
        else {
            Palindrome sub = new Palindrome(
            pal.substring(1,pal.length()-1));
            return sub.isPalindrome();  // RECURSIVE CASE.
        }
    }
    else if (!Character.isLetter(first)) {
        Palindrome sub = new Palindrome(pal.substring(1));
        return sub.isPalindrome();      // RECURSIVE CASE.
    }
    else {
        Palindrome sub = new Palindrome(pal.substring(0, pal.length()-1));
        return sub.isPalindrome();      // RECURSIVE CASE.
    }
}

ここで回文クラスを見つけることができますhttp://users.dickinson.edu/~braught/courses/cs132s03/code/Palindrome.src.html、forループを記述し、回文をチェックします。それが役立つことを願っています。

于 2012-10-08T07:17:31.540 に答える
0

あなたはこれをやってみることができます。searchStringsを、検索する文字列を含むArrayListとします。

for (String str : searchStrings) {
    char[] strArray = str.toCharArray();
    int i = 0;
    int j = strArray.length - 1;
    while (true) {
        if (strArray[i] != strArray[j]) {
            System.out.println(str + " is not a palindrome.");
            break;
        }

        if (i == j || i > j) {
            System.out.println(str + " is a palindrome.");
            break;
        }

        i++;
        j--;
    }
}        
于 2012-10-08T08:05:06.367 に答える