判断一个字符串是否为回文
时间: 2023-09-08 14:14:30 浏览: 98
一个字符串是回文的,当且仅当它从前往后读和从后往前读的结果相同。例如,“level”和“racecar”都是回文字符串。
以下是Python代码来判断一个字符串是否为回文:
```python
def is_palindrome(string):
# 将字符串转换为小写并去除空格
string = string.lower().replace(' ', '')
# 判断字符串是否等于它的反转
return string == string[::-1]
```
该函数首先将输入字符串转换为小写,并去除空格。然后,它将字符串和它的反转进行比较,如果它们相等,就说明该字符串是回文的。
相关问题
c语言编写函数判断一个字符串是否为回文运用指针函数并判断输入字符串是否为回文
在C语言中,我们可以利用指针和循环结构来编写一个函数来判断一个字符串是否是回文。回文是指正读反读都一样的字符串,比如"level"、"racecar"等。
下面是一个简单的C函数示例,它接受两个指向字符数组的指针作为参数,通过比较首尾字符是否相等来判断字符串是否为回文:
```c
#include <stdbool.h>
#include <stdio.h>
#include <string.h>
bool is_palindrome(char *str1, char *str2) {
// 如果两个指针交叉点到达结束位置,则说明是回文
if (str1 >= str2)
return true;
// 比较两个指针所指的字符是否相等
while (*str1 == *str2) {
str1++;
str2--;
}
// 如果有不相等的字符,说明不是回文
return false;
}
int main() {
char input[] = "madam";
if (is_palindrome(input, input + strlen(input) - 1)) {
printf("%s is a palindrome.\n", input);
} else {
printf("%s is not a palindrome.\n", input);
}
return 0;
}
```
在这个例子中,`str1` 和 `str2` 分别指向字符串的开始和结束,然后向中心移动,如果发现有不匹配的字符则返回 `false`。如果没有找到不匹配的字符,说明整个字符串是回文,返回 `true`。
c语言编写函数判断一个字符串是否为回文运用指针函数并判断输入字符串是否为回文不使用bool
在C语言中,可以使用指针来判断一个字符串是否为回文。回文是指正读反读都一样的字符串,例如"madam"、"racecar"等。这里我们不使用布尔类型,而是通过比较字符来实现。下面是一个简单的函数示例:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
void is_palindrome(char *str);
int main() {
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin); // 防止换行符
input[strcspn(input, "\n")] = '\0'; // 移除换行符
if (is_palindrome(input)) {
printf("%s is a palindrome.\n", input);
} else {
printf("%s is not a palindrome.\n", input);
}
return 0;
}
// 指针函数判断回文
void is_palindrome(char *str) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) { // 当两个指针指向的字符相等,继续向中间移动
if (str[start] != str[end]) {
return; // 如果不相等,直接返回,不是回文
}
start++;
end--;
}
printf("%s is a palindrome (using pointers)\n", str);
}
```
在这个例子中,`is_palindrome`函数接受一个字符串指针作为参数,通过两个指针分别从字符串的开始和结束位置向中间移动,并检查对应位置的字符是否相等。如果任何时候发现不相等,则立即返回非回文;当所有字符都匹配时,说明它是回文。
阅读全文