编写一个程序,判断一个字符串是否为回文
时间: 2023-06-05 16:47:32 浏览: 62
Python中有很多方法可以判断一个字符串是否为回文字符串,比如逆序字符串逐位比较、双指针逐位比较等等。下面是一个用双指针逐位比较的例子:
```python
def is_palindrome(s):
left, right = 0, len(s) - 1
while left < right:
if s[left] != s[right]:
return False
left += 1
right -= 1
return True
s = 'abba'
print(is_palindrome(s)) # True
s = 'hello'
print(is_palindrome(s)) # False
```
这个例子中,我们定义了一个叫作`is_palindrome`的函数来判断一个字符串是否为回文字符串。函数的实现中,我们用两个指针`left`和`right`来分别指向字符串的第一个和最后一个字符,然后逐位比较字符是否相等。如果有任何一对字符不相等,就可以确定这个字符串不是回文字符串,直接返回`False`;否则,继续比较,并更新指针的位置。如果最终两个指针相遇,就说明整个字符串都是回文字符串,返回`True`。
相关问题
编写程序判断一个字符串是否回文
A:
可以编写一个判断回文的函数如下:
```
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;
}
```
该函数接受一个字符串作为输入参数。首先获取字符串的长度,然后循环遍历字符串前半部分,依次判断第i个字符和倒数i个字符是否相等,一旦发现不相等的字符,就返回false。如果循环全部结束都没有发现不相等的字符,就返回true,表示该字符串是回文。
可以在主函数中调用该函数,例如:
```
int main(){
string str = "ABCBA";
if (isPalindrome(str)){
cout << str << " is palindrome." << endl;
} else {
cout << str << " is not palindrome." << endl;
}
return 0;
}
```
输出结果为:
```
ABCBA is palindrome.
```
编写一个判断字符串是不是回文串的C程序
#include<stdio.h>
#include<string.h>
int main(){
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
int len = strlen(str);
int flag = 1;
for(int i=0; i<len/2; i++){
if(str[i] != str[len-i-1]){
flag = 0;
break;
}
}
if(flag){
printf("是回文串\n");
}else{
printf("不是回文串\n");
}
return 0;
}