如何有效地檢查字串是否有回文
檢查字串是否有回文涉及驗證它們在兩個方向上的讀取是否相同。完成此任務的簡單方法是將字串轉換為字元陣列並比較相鄰元素。
以下是此方法的範例實作:
public class Aufg1 { // Main method for testing public static void main(String[] args) { String wort = "reliefpfpfeiller"; char[] warray = wort.toCharArray(); System.out.println(istPalindrom(warray)); } // Method for checking palindromes public static boolean istPalindrom(char[] word) { boolean palindrom = false; if (word.length % 2 == 0) { for (int i = 0; i < word.length / 2 - 1; i++) { if (word[i] != word[word.length - i - 1]) { return false; } else { palindrom = true; } } } else { for (int i = 0; i < (word.length - 1) / 2 - 1; i++) { if (word[i] != word[word.length - i - 1]) { return false; } else { palindrom = true; } } } return palindrom; } }
此程式碼迭代字元數組,比較兩端的元素以確定它們是否匹配。然而,有一種更優化的方法,涉及同時比較從開頭和結尾開始的元素。
改進的程式碼:
public static boolean istPalindrom(char[] word) { int i1 = 0; int i2 = word.length - 1; while (i2 > i1) { if (word[i1] != word[i2]) { return false; } ++i1; --i2; } return true; }
範例:
使用輸入字串「andna」作為範例:
以上是如何有效率判斷字串是否回文?的詳細內容。更多資訊請關注PHP中文網其他相關文章!