编写函数,判断一个字符串是否是回文。若是回文函数返回值为1,否则函数返回值为0。回文是顺读和倒读都是一样的字符串。
时间: 2023-06-24 13:08:29 浏览: 48
以下是一个简单的判断回文的函数实现:
```python
def is_palindrome(s):
# 去除空格和标点符号
s = ''.join(e for e in s if e.isalnum())
# 将字符串全部转换为小写
s = s.lower()
# 判断字符串是否与其反转后的字符串相同
return s == s[::-1]
```
使用方法:
```python
s = "A man, a plan, a canal: Panama"
print(is_palindrome(s)) # True
s = "hello world"
print(is_palindrome(s)) # False
```
解释一下代码:
首先,使用 `isalnum()` 方法过滤掉字符串中的非字母和数字字符。
然后,将字符串全部转换为小写,这样就可以忽略大小写的影响。
最后,判断字符串是否与其反转后的字符串相同。如果相同,说明该字符串是回文,返回 True;否则返回 False。
相关问题
C语言.设计一函数,函数功能实现判断一个字符串是否是回文,如果是回文返回值1,否则返回值0。
下面是一个判断字符串是否是回文的C语言函数的实现:
```c
#include <string.h>
int is_palindrome(const char *str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
return 0;
}
}
return 1;
}
```
该函数使用了字符串库中的 `strlen` 函数来获取字符串的长度,然后使用一个循环来检查字符串是否是回文。循环的条件为 `i < len / 2`,因为我们只需要比较字符串的前一半和后一半是否相等即可。如果发现不相等的字符,则函数会立即返回0。如果循环结束后仍未发现不相等的字符,则返回1,表示字符串是回文。
你可以将该函数插入到你的C程序中,然后通过调用该函数来判断所需的字符串是否为回文。
用C语言编写函数,判断一个字符串是否为回文,如是返回1,否则返回-1.
以下是用C语言编写的函数,用于判断一个字符串是否为回文:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int i, j;
int len = strlen(str);
for (i = 0, j = len - 1; i <= j; i++, j--) {
if (str[i] != str[j]) {
return -1;
}
}
return 1;
}
int main() {
char str[100];
printf("Enter a string: ");
scanf("%s", str);
if (isPalindrome(str) == 1) {
printf("%s is a palindrome.\n", str);
}
else {
printf("%s is not a palindrome.\n", str);
}
return 0;
}
```
在这个函数中,我们首先使用`strlen()`函数获取字符串的长度。然后使用两个指针`i`和`j`来遍历字符串,`i`从头开始遍历,`j`从尾开始遍历,每次迭代都会比较字符`str[i]`和`str[j]`,如果它们不相等,则返回-1,表示该字符串不是回文。最后,如果成功遍历了整个字符串,就返回1,表示该字符串是回文。