C++编程判断输入的一串字符是否为回文
时间: 2023-12-10 11:03:12 浏览: 190
判断一个字符串是否为回文,可以分别从字符串的两端开始往中间比较。
C++代码如下:
```cpp
#include <iostream>
#include <string>
using namespace std;
bool isPalindrome(string str) {
int len = str.length();
for (int i = 0; i < len/2; i++) {
if (str[i] != str[len-i-1]) {
return false;
}
}
return true;
}
int main() {
string str;
cout << "请输入一个字符串:";
cin >> str;
if (isPalindrome(str)) {
cout << "是回文" << endl;
} else {
cout << "不是回文" << endl;
}
return 0;
}
```
首先定义一个 `isPalindrome` 函数,它的参数是一个字符串,返回值是一个布尔类型,表示该字符串是否为回文。然后在主函数中读入一个字符串,调用 `isPalindrome` 函数进行判断。
相关问题
用C++编程判断输入的一串字符是否为“回文”。所谓“回文”是指顺序读和逆序读都一样的字符串。如:“12321”和“abcdcba”都是回文。
可以使用双指针的思想,从字符串的两端开始比较字符是否相同。具体实现如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
bool isPalindrome(char* str) {
int len = strlen(str);
int left = 0, right = len-1;
while (left < right) {
if (str[left] != str[right]) {
return false;
}
left++;
right--;
}
return true;
}
int main() {
char str[100];
cin >> str;
if (isPalindrome(str)) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
}
```
在主函数中,先读入字符串,然后调用`isPalindrome`函数判断是否为回文。在`isPalindrome`函数中,使用双指针从字符串两端开始比较字符是否相同,如果发现不同的字符,直接返回`false`表示不是回文。如果到最后都没有返回`false`,则说明是回文,返回`true`。
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"。