判断回文
时间: 2024-02-22 11:55:30 浏览: 23
判断回文有很多种方法,以下是其中一种使用双指针的方法:
1. 定义左右指针left和right,初始时left指向字符串开头,right指向字符串结尾;
2. 每次比较left和right指向的字符是否相同,如果不同则说明不是回文,返回false;
3. 如果相同,则将left右移一位,将right左移一位,继续比较;
4. 当left >= right时,说明已经比较完了整个字符串,且所有字符都相同,返回true。
以下是使用Java实现的代码示例:
```java
public boolean isPalindrome(String s) {
if (s == null || s.length() == 0) {
return true;
}
int left = 0, right = s.length() - 1;
while (left < right) {
char c1 = s.charAt(left);
char c2 = s.charAt(right);
if (!Character.isLetterOrDigit(c1)) {
left++;
} else if (!Character.isLetterOrDigit(c2)) {
right--;
} else if (Character.toLowerCase(c1) != Character.toLowerCase(c2)) {
return false;
} else {
left++;
right--;
}
}
return true;
}
```
注意:在比较字符时,需要忽略大小写和非字母数字字符。以上代码中的isLetterOrDigit方法用来判断字符是否为字母或数字。