前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >又见回文 (SDUT 2560)

又见回文 (SDUT 2560)

作者头像
Lokinli
发布2023-03-09 16:17:43
1310
发布2023-03-09 16:17:43
举报
文章被收录于专栏:以终为始

Problem Description

    “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。现在呢,就是让你判断输入的字符串是否是回文串。

Input

    有多组输入,每行输入一串字符,保证字符串长度不会大于 100000,字符串由大小写英文字母和空格组成,以字符串“2013”作为结束标志。

Output

    每行输出一个字符串,如果输入是回文串,输出“YES”,否则输出“NO”(注意:判断的时候空格是不作判断的,详见样例)。

Sample Input

代码语言:javascript
复制
aaaa
ggg g
lozxvxoMJBCHsTXooXTsHCBJMoxvxzol
i am a good acmer
2013

Sample Output

代码语言:javascript
复制
YES
YES
YES
NO

题解:稍微处理一下直接比较就可以了。

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>
const int maxn = 100000;
char s[maxn + 10];
int main()
{
    int i, j;
    while(gets(s) != '\0')
    {
        if(strcmp(s, "2013") == 0) return 0;
        int len = strlen(s);
        int f = 0;
        for(i = 0, j = len - 1; i < j;)
        {
            if(s[i] == s[j])   // 相等就继续比较
            {
                i ++;
                j --;
            }
            else if(s[i] == ' ' && s[j] != ' ') // 如果任意在前面或者后面或者前面和后面遇到空格,往后跳一格
            {
                i ++;
            }
            else if(s[i] != ' ' && s[j] == ' ')
            {
                j --;
            }
            else if(s[i] == ' ' && s[j] == ' ')
            {
                i ++;
                j --;
            }
            else            //出现不是回文串的情况
            { 
                f = 1;
                break;
            }
        }
        if(f == 0) printf("YES\n");
        else printf("NO\n");
    }
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Problem Description
  • Input
  • Output
  • Sample Input
  • Sample Output
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档