回文字符串的定义:
回文字符串是指一个字符串从左到右与从右到左遍历得到的序列是相同的。也就是说不管从左读,还是从右读,都是一样的,类似数学上学习的轴对称图形,例如“abcba”、“NBAABN”是回文字符串,而“abcd”不是回文字符串。
常见的实现思路有以下两种:
- 首尾双向遍历,如果某个字符不相同,则不是回文字符串;
- 反转字符串,比较反转后的字符串与原字符串是否相同;
示例1 — 首尾双向遍历
private static boolean isPalindrome(String str) {
if (str == null) {
return false;
}
int low = 0;
int high = str.length() - 1;
while (low < high) {
if (str.charAt(low) != str.charAt(high)) {
return false;
}
low++;
high--;
}
return true;
}
也可以采用for循环来实现首尾双向遍历,如下:
private static boolean isPalindrome(String str) {
if (str ==