📌  相关文章
📜  教资会网络 | UGC NET CS 2018 年 7 月 – II |问题 32(1)

📅  最后修改于: 2023-12-03 15:10:16.330000             🧑  作者: Mango

简述 UGC NET CS 2018 年 7 月 – II 的问题 32

问题 32 提供了一道编程题,要求编写一个程序来判断一个给定的字符串是否是回文字符串。回文字符串是指正着读和倒着读都一样的字符串。

输入格式

程序需要从标准输入中读取一个字符串 s。

输出格式

程序需要输出一个整数,表示字符串 s 是否是回文字符串。如果是回文字符串,则输出 1,否则输出 0。

示例

输入:

racecar

输出:

1
编程思路

判断一个字符串是否是回文字符串可以使用双指针法来实现。定义一个指针从字符串的开头开始,另一个指针从字符串的末尾开始,两个指针同时向中间移动,判断对应位置的字符是否相同,如果所有的字符都相同,则该字符串是回文字符串。

具体实现细节可以参考下面的代码:

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

int is_palindrome(char *s) {
    int len = strlen(s);
    int i = 0, j = len - 1;
    while (i < j) {
        if (s[i++] != s[j--]) {
            return 0;
        }
    }
    return 1;
}

int main() {
    char s[1000];
    scanf("%s", s);
    if (is_palindrome(s)) {
        printf("1\n");
    } else {
        printf("0\n");
    }
    return 0;
}

其中,is_palindrome 函数用来判断字符串是否是回文字符串,如果是返回 1,否则返回 0。在 main 函数中,先读取输入的字符串,然后调用 is_palindrome 函数进行判断,根据返回的结果输出对应的数字。