检查字符串是否回文的 Java 方法
我想检查一个字符串是否是回文。我想学习一种简单的方法来使用最少的字符串操作来检查相同的方法
使用是过度的,因为你不需要生成额外的字符串,你只需要查询现有的字符串。下面的示例检查第一个和最后一个字符是否相同,然后每次在字符串中进一步检查结果。一旦不是回文,它就会返回。reverse
s
这种方法的问题在于它预先完成了所有工作。它对字符串执行代价高昂的操作,然后逐个字符地检查字符串,直到字符串不相等,并且仅当它不是回文时才返回 false。如果你只是一直比较小字符串,那么这很好,但是如果你想保护自己免受更大的输入,那么你应该考虑这个算法。reverse
boolean isPalindrome(String s) {
int n = s.length();
for (int i = 0; i < (n/2); ++i) {
if (s.charAt(i) != s.charAt(n - i - 1)) {
return false;
}
}
return true;
}
对于最少的代码行数和最简单的情况
if(s.equals(new StringBuilder(s).reverse().toString())) // is a palindrome.