判断字符串是否为回文

GitHub跳转原题关系图返回列表

比较原字符串与其切片逆序结果,判断是否为回文。

OJ: noi_openjudge

题目 ID: ch0107-33

难度:入门

标签:字符串回文python

日期: 2026-07-30 23:01

题意

判断一个无空白字符串是否为回文。

思路

切片 text[::-1] 得到逆序字符串;两者相等当且仅当原串为回文。

代码

cpp
#include <cstdio>
#include <cstring>

char s1[1005];
int main(){
    scanf("%s",s1+1);
    int len = strlen(s1+1);
    int mid = len /2;
    int i;
    for(i=1;i<=mid;i++){
        if( s1[i] != s1[len+1-i]){
            printf("no");
            return 0;
        }
    }
    printf("yes");
    return 0;
}

复杂度

总结

Python代码

python
text = input().strip()
print("yes" if text == text[::-1] else "no")

C++代码

cpp
#include <cstdio>
#include <cstring>

char s1[1005];
int main(){
    scanf("%s",s1+1);
    int len = strlen(s1+1);
    int mid = len /2;
    int i;
    for(i=1;i<=mid;i++){
        if( s1[i] != s1[len+1-i]){
            printf("no");
            return 0;
        }
    }
    printf("yes");
    return 0;
}

复杂度

时间和额外空间复杂度均为 O(n)O(n)

总结

单次回文判断中,切片逆序比手写双指针更紧凑。