C++ 输入一行字符串,判断他是不是回文串,如果是的话输出YES,不是的话输出NO。
时间: 2024-03-23 13:37:35 浏览: 15
好的,这是一个判断回文串的问题,可以使用C++的string类和双指针算法来实现。以下是示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
getline(cin, s); // 输入字符串
int left = 0, right = s.size() - 1; // 定义左右指针
while (left < right) {
if (s[left] != s[right]) { // 如果左右指针所指的字符不相等
cout << "NO" << endl;
return 0;
}
left++; // 左指针右移
right--; // 右指针左移
}
cout << "YES" << endl; // 如果程序执行到这里,说明是回文串
return 0;
}
```
在上面的代码中,我们首先使用getline函数输入字符串s,然后定义左右指针left和right,并对其进行初始化,left指向第一个字符,right指向最后一个字符。接下来,我们使用while循环,每次比较left和right所指的字符是否相等,如果不相等,说明不是回文串,输出"NO",并退出程序。如果程序执行到while循环结束,说明s是回文串,输出"YES"即可。
相关问题
编写程序,输入一串中文字符,判断是否为回文,是回文则输出Yes,否则输出No。C++
以下是一个简单的 C++ 程序,用于判断输入的字符串是否为回文:
```c++
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
bool isPalindrome = true;
cout << "请输入一串中文字符:";
getline(cin, str); // 使用 getline 函数读取包含空格的字符串
// 判断是否为回文
int len = str.length();
for (int i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
isPalindrome = false;
break;
}
}
// 输出结果
if (isPalindrome) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
}
```
该程序首先使用 `getline` 函数读取用户输入的字符串,然后从头尾开始比较字符是否相等,如果有不相等的字符,则该字符串不是回文。最后根据判断结果输出相应的信息。
C++回文指的是正读反读都一样的字符串,编程判断用户输入的字符串是否是回文,如果是的话输出 yes 否则输出 no
以下是 Python 代码实现:
```python
string = input("请输入一个字符串:")
if string == string[::-1]:
print("yes")
else:
print("no")
```
解释:
- `input("请输入一个字符串:")`:提示用户输入一个字符串,并将输入的字符串赋值给 `string` 变量。
- `string[::-1]`:利用切片[::-1]将字符串反转,如果反转后的字符串与原字符串相等,则说明该字符串是回文。
- `if string == string[::-1]:`:判断字符串是否为回文。
- `print("yes")`:如果是回文,输出 "yes"。
- `print("no")`:如果不是回文,输出 "no"。