判断给定字符串是否是回文。所谓回文是正读和反读均相同的字符串,例如 "abcba"或"abba"是回文,而"abcda"不是回文。用c++
时间: 2024-11-04 13:10:15 浏览: 29
在C++中,判断一个字符串是否是回文可以通过双指针技术,从两端开始向中间遍历,同时比较对应的字符是否相等。以下是简单的C++代码实现:
```cpp
#include <string>
#include <iostream>
bool isPalindrome(const std::string& str) {
int left = 0, right = str.length() - 1; // 左右指针
while (left < right) { // 只要左指针小于右指针,就继续检查
if (str[left] != str[right]) { // 如果对应字符不相等,返回false
return false;
}
left++; // 左指针向右移动一位
right--; // 右指针向左移动一位
}
return true; // 遍历完后所有字符都匹配,说明是回文
}
int main() {
std::string input;
std::cout << "Enter a string: ";
std::getline(std::cin, input);
if (isPalindrome(input)) {
std::cout << "The string is a palindrome.\n";
} else {
std::cout << "The string is not a palindrome.\n";
}
return 0;
}
```
这个函数接受一个字符串作为输入,然后通过比较左右两端字符是否相同来判断是否是回文。如果在整个过程中没有发现不相等的字符,则返回`true`,否则返回`false`。
阅读全文