输入一个字符串,判断是否是回 串,如果是,则输出字符串yes,否则输出字符 串no,空串认为是回文串;用Java解决
时间: 2024-10-20 07:12:35 浏览: 26
两个串相等当且仅当这两个串的值相等。-字符串
在Java中,可以采用双指针法来判断一个字符串是否是回文串。这里是一个简单的函数示例:
```java
public class Main {
public static void main(String[] args) {
String str = "madam"; // 测试字符串
System.out.println(isPalindrome(str) ? "yes" : "no");
}
public static boolean isPalindrome(String s) {
// 处理边界情况,空串和只有一个字符的都是回文串
if (s == null || s.length() < 2) {
return true;
}
int left = 0;
int right = s.length() - 1;
while (left < right) {
// 如果左右指针指向的字符不相等,则不是回文串
if (s.charAt(left) != s.charAt(right)) {
return false;
}
// 移动指针
left++;
right--;
}
return true; // 所有字符都比较过了,说明是回文串
}
}
```
这个`isPalindrome`函数首先检查输入字符串的长度,如果长度小于2则默认为回文。然后它设置两个指针,一个从头开始(`left`),另一个从尾部开始(`right`)。每次比较对应位置的字符,如果不相等就返回false,否则继续移动指针直到它们相遇或者交叉。如果所有字符都匹配了,那么就是回文串。
阅读全文