c - 需要你的帮助来找到我的回文

标签 c string palindrome

需要您的帮助来寻找回文。

我回文的问题是:当我写一个句子时,测试执行得不好,因为我的程序只检查第一个字母和最后一个字母所以这会导致问题 句子的第一个字母值得最后一个字母,但第二个字母不值得最后一个字母。

如果你能帮我解决这个问题,我将不胜感激 谢谢。

我的代码-

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char recursive_palindrome(const char st[], int first, int last )
{
if(st[first] != st[last])
{
    return(0);
}   
if(last-first<=1)
{
    return(1);
    return(recursive_palindrome(st, first+1,last+1));
}
}

int main()
{
char st[255];
printf("enter a string: \n");
gets(st);

if ( recursive_palindrome(st,0,strlen(st)-1))
{
    puts("yes\n");
}
else
{
    puts("No");
}
}

最佳答案

if(last-first<=1)
{
    return(1);
    return(recursive_palindrome(st, first+1,last+1));
}

应该修改成

if(last-first<=1)
{
    return(1);
}
return(recursive_palindrome(st, first+1,last-1));

请注意,如果 st[first] == st[last] && last-first > 1,您的原始 recursive_palindrome() 不会到达任何返回语句。编译器应该对此发出警告。

关于c - 需要你的帮助来找到我的回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20952402/

相关文章:

c - 使用 isalpha 和空白去除

c - 实现线性搜索

c# - 通过拆分键对字典进行分组并创建新字典

c++ - 如何打印数组中的回文数和质数

c - 在数组中找到第一个伪回文

c - IBM DB2 C 标量 UDF 错误 SQL0444N(原因代码 : 5)

java - 从字符串中获取不同的值并将它们转换为 double 值

linux - 解析命令输出

java - 通过比较堆栈和队列确定回文

c - "close"到其他变量在C中存储的规则是什么,如果有的话?