java7-10 验证回文串
时间: 2024-05-12 21:17:25 浏览: 19
请参考以下 Java 代码实现回文串的验证:
```
public boolean isPalindrome(String s) {
// 去除空格和非字母数字的字符
s = s.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
int start = 0, end = s.length() - 1;
while(start < end) {
if(s.charAt(start) != s.charAt(end)) {
return false;
}
start++;
end--;
}
return true;
}
```
这个方法会先把字符串中的所有非字母数字字符去掉,并且转化为小写字母,然后使用双指针的方法进行比较。如果左右指针所指的字符不相等,则返回 false,否则继续进行比较。如果左指针和右指针相遇,那么说明这个字符串是回文串。
相关问题
7-2 验证回文串java
请参考以下Java代码实现回文串的验证:
```java
public boolean isPalindrome(String s) {
if (s == null || s.length() == 0) {
return true;
}
s = s.toLowerCase();
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 (c1 != c2) {
return false;
} else {
left++;
right--;
}
}
return true;
}
```
这段代码会将字符串`S`转换为小写,并使用双指针分别从字符串的头部和尾部开始遍历。当发现指针所指向的字符不是字母或数字时,将跳过该字符。如果两个指针所指向的字符不相同,则说明该字符串不是回文串。如果两个指针重合,则说明该字符串是回文串。
java验证回文串pta
题目中规定了使用 Java 实现回文串的验证,可以使用以下代码实现:
```
public boolean isPalindrome(String s) {
s = s.replaceAll("[^a-zA-Z0-9]", "").toLowerCase(); // 去除非字母和数字的字符并转化为小写
int left = 0, right = s.length() - 1;
while (left < right) {
if (s.charAt(left) != s.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
```
该方法首先将输入字符串中的非字母和数字的字符去除,并将剩余字符转化为小写。接着采用双指针的方法,从字符串的两端开始遍历,比较每个字符是否相等,最终判断字符串是否为回文串。