湖州师范学院研究生吧 关注:2,616贴子:4,370
  • 1回复贴,共1

考研题讲解

只看楼主收藏回复

题目:实现一个函数,输入一个字符串,判断该字符串是否是一个回文串。回文串指正向和反向读都一样的字符串
解法:
#include <stdio.h>#include <stdbool.h>#include <string.h>bool is_palindrome(const char* s) { int left = 0; int right = strlen(s) - 1; while (left < right) { if (s[left] != s[right]) { return false; } left++; right--; } return true;}int main() { const char* str = "level"; if (is_palindrome(str)) { printf("The string is a palindrome.\n"); } else { printf("The string is not a palindrome.\n"); } return 0;}
在这段代码中,is_palindrome 函数的参数类型是 const char*,表示输入的字符串是一个常量字符指针。函数内部使用两个整型变量 left 和 right 来表示左右指针。
strlen 函数用来计算字符串的长度,从而确定右指针的初始位置。
is_palindrome 函数通过比较左右指针所指向的字符来判断是否是回文串。如果发现不相等的字符,则直接返回 false,否则继续移动指针,并在循环结束后返回 true。
在 main 函数中,将字符串 “level” 作为输入传递给 is_palindrome 函数,并根据返回值输出相应的信息。
你可以替换 str 变量内的字符串来测试不同的示例


IP属地:浙江1楼2023-07-23 09:54回复


    IP属地:浙江来自Android客户端2楼2023-07-28 15:38
    回复