如何有效地检查字符串是否有回文
检查字符串是否有回文涉及验证它们在两个方向上的读取是否相同。完成此任务的一个简单方法是将字符串转换为字符数组并比较相邻元素。
以下是此方法的示例实现:
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中文网其他相关文章!