判断输入的字符串是否为回文
时间: 2023-11-11 12:55:46 浏览: 148
判断一个字符串是否是回文的方法有多种。其中一种方法是通过比较字符串的正序和逆序是否相同来判断。如果相同,则说明字符串是回文;如果不同,则说明字符串不是回文。
以下是一个示例代码,演示了如何判断输入的字符串是否是回文:
#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 - 1 - i]) {
return false;
}
}
return true;
}
int main() {
string input;
cout << "请输入一个字符串:";
cin >> input;
if (isPalindrome(input)) {
cout << "是回文字符串" << endl;
} else {
cout << "不是回文字符串" << endl;
}
return 0;
}
相关问题
编写函数,判断输入字符串是否为回文串。 例如: 输入:'上海在海上', 返回Yes. 输入: abcba, 返回Yes. 输入: abcd, 返回No.
要编写一个Python函数来判断输入字符串是否为回文串,你可以使用双指针法,从两端开始比较字符。如果两个指针指向的字符相同,则向中心移动;否则返回False。当所有字符都检查完毕并且没有发现不匹配时,说明字符串是回文,返回True。
这是简单的Python函数实现:
```python
def is_palindrome(s):
# 将字符串转为小写并去除非字母数字字符(忽略空格、标点等)
s = ''.join(e for e in s if e.isalnum()).lower()
# 初始化两个指针,一个指向字符串开头,另一个指向结尾
left, right = 0, len(s) - 1
while left < right:
# 如果左右指针对应的字符不同,不是回文
if s[left] != s[right]:
return False
# 否则,移动指针
left += 1
right -= 1
# 所有字符都匹配,所以是回文
return True
# 测试函数
print(is_palindrome("上海在海上")) # 输出: True
print(is_palindrome("abcba")) # 输出: True
print(is_palindrome("abcd")) # 输出: False
```
编写C语言程序判断输入字符串是否是回文
以下是一个简单的C语言程序,用于判断输入的字符串是否是回文:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len, flag = 0;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
for(i = 0; i < len; i++)
{
if(str[i] != str[len - 1 - i])
{
flag = 1;
break;
}
}
if(flag)
{
printf("%s 不是回文字符串\n", str);
}
else
{
printf("%s 是回文字符串\n", str);
}
return 0;
}
```
该程序首先要求用户输入一个字符串,然后使用 strlen 函数获取字符串的长度,接着使用 for 循环遍历字符串,判断字符串是否是回文。如果字符串是回文,则输出“是回文字符串”,否则输出“不是回文字符串”。
阅读全文