C语言实现:【问题描述】 写一个递归算法,判断一个字符串是否是回文串 【输入形式】 字符串 【输出形式】 1或者0 【样例输入】 tet 【样例输出】 1 【样例输入】 abc 【样例输出】 0
时间: 2023-08-04 10:07:15 浏览: 105
031 判断字符串是否回文 C语言
5星 · 资源好评率100%
以下是 C 语言实现的代码:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[], int left, int right) {
if (left >= right) { // 递归结束条件
return 1;
}
if (str[left] != str[right]) {
return 0;
}
return isPalindrome(str, left+1, right-1);
}
int main() {
char str[100];
scanf("%s", str);
int len = strlen(str);
int result = isPalindrome(str, 0, len-1);
printf("%d\n", result);
return 0;
}
```
具体思路是:分别从字符串的首尾两端向中间递归,若两端字符相等,则继续递归判断其内部是否为回文串,直到两端相遇或者越界。时间复杂度为 O(n)。
阅读全文