C++:回文字符串 题目描述 输入一行字符串,如果是则输出yes否则输出no,所谓回文是指正读反读都相同的字符序列。 样例1: 输入 cdadc 输出 yes 样例2: 输入 gcdg 输出 no
时间: 2024-12-02 21:20:07 浏览: 27
在C++中,判断一个字符串是否是回文可以通过双指针技术实现。首先,我们需要从两端开始向中间遍历,比较对应位置的字符是否相等。如果所有字符都能匹配,则该字符串是回文;如果不匹配,则不是。
以下是简单的步骤和代码示例:
1. 定义两个指针,一个指向字符串的起始位置(i),另一个指向结束位置(j)。
2. 当i小于等于j时,进行循环:
- 检查当前字符(str[i])是否等于倒数第i个字符(str[j])。如果不是,直接输出"no"并退出循环。
- 如果相等,将i加一,将j减一,继续比较下一个字符对。
3. 如果整个循环都没有发现不匹配的字符,说明字符串是回文,输出"yes"。
```cpp
#include <iostream>
#include <string>
bool isPalindrome(const std::string& str) {
int i = 0, j = str.length() - 1;
while (i < j) {
if (str[i] != str[j]) {
return false;
}
++i;
--j;
}
return true;
}
int main() {
std::string input;
std::cin >> input;
if (isPalindrome(input)) {
std::cout << "yes" << std::endl;
} else {
std::cout << "no" << std::endl;
}
return 0;
}
```
阅读全文