5. 回文是指正读和反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符串是否为回文。
时间: 2023-04-24 13:05:22 浏览: 323
程判断输入的一串字符是否为“回文”。所谓“回文”是指顺序读和逆序读都一样的字符串。如:“12321”和“abcdcba”都是回文。
可以使用双指针法来判断一个字符串是否为回文。具体步骤如下:
1. 定义两个指针,一个指向字符串的开头,一个指向字符串的结尾。
2. 每次比较两个指针所指向的字符是否相同,如果不同,则该字符串不是回文;如果相同,则继续比较下一个字符。
3. 当两个指针相遇时,如果没有出现不同的字符,则该字符串是回文。
下面是一个示例代码:
```
bool isPalindrome(string s) {
int left = 0, right = s.length() - 1;
while (left < right) {
if (s[left] != s[right]) {
return false;
}
left++;
right--;
}
return true;
}
```
该算法的时间复杂度为 O(n),其中 n 是字符串的长度。
阅读全文