C++编写一个程序,判断一个字符串是否为回文(顺读和倒读都一样的字符串称为回文)。 【输入形式】以#结尾的任意字符串 【输出形式】如果是回文,输出字符串的长度(不包括结尾的#),否则打印no 【样例输入】abcdcba# 【样例输出】7
时间: 2024-09-09 11:15:09 浏览: 104
在C++中,编写一个判断字符串是否为回文的程序可以通过以下步骤来实现:
1. 首先,从标准输入读取一行以#结尾的字符串。
2. 接着,去除字符串结尾的#。
3. 然后,使用双指针技术从字符串的两端向中间遍历,比较对应的字符是否相同。
4. 如果所有对应的字符都相同,则该字符串是回文;否则,不是回文。
5. 最后,根据判断的结果输出相应的信息。
下面是C++代码的示例:
```cpp
#include <iostream>
#include <string>
using namespace std;
bool isPalindrome(const string &str) {
int left = 0, right = str.size() - 1;
while (left < right) {
if (str[left] != str[right]) {
return false;
}
left++;
right--;
}
return true;
}
int main() {
string str;
getline(cin, str); // 读取一行输入
// 移除字符串末尾的'#'
if (!str.empty() && str.back() == '#') {
str.pop_back();
}
// 判断是否为回文
if (isPalindrome(str)) {
cout << str.size() << endl; // 输出字符串长度
} else {
cout << "no" << endl; // 输出"no"
}
return 0;
}
```
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)