首页 > 其他 > 详细

又见回文串

时间:2014-04-10 01:51:39      阅读:718      评论:0      收藏:0      [点我收藏+]

这个是个比较简单的题目,是在nyist上面的。

然后看了一下别人的代码,感觉思路挺特别的,最近用stl习惯了,已经不习惯去写代码了,不过还是要常常写一下底层代码吧,不然就会对语言越来越不熟悉了。

别人的代码:

#include <cstdio>
#include <cstring>
const int N = 10001;
char ch[N];
int main()
{
    int i,j;
    while(~scanf("%s",ch))
    {
        int a[26] = {0} , sum = 0;
        int len = strlen(ch);
        for(i = 0;i < len;i++)
            a[ch[i]-‘a‘]++;
        for(i = 0;i < 26;i++)
            if(a[i]&1)
                sum++;
        if(sum == 1 || sum == 2 || sum == 0)
            puts("Yes");
        else if(sum&1)
            puts("No");
        else
            puts("Yes");
    }
}

贴一下自己用stl写的代码吧!

#include <iostream>
#include <string>
#include <string.h>
#include <algorithm>
#include <stdio.h>
using namespace std;
char s1[1000];
int main()
{
    memset(s1,0,sizeof(s1));
    while(gets(s1)!="\0")
    {
        string a1,a2;
        a1 = s1;
        a2 = s1;
        if(a1.compare("2013") == 0)
            break;
        reverse(a2.begin(),a2.end());
        if(a1 == a2)
            cout << "Yes" <<endl;
        else
            cout << "No" <<endl;
        a1.erase();
        a2.erase();
    }
    return 0;
}

但是都是tle的。具体原因。。。。

本文出自 “我的算法笔记” 博客,谢绝转载!

又见回文串,布布扣,bubuko.com

又见回文串

原文:http://liu168ad.blog.51cto.com/7511123/1392868

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!