码迷,mamicode.com
首页 > 其他好文 > 详细

[河南省ACM省赛-第四届] Substring (nyoj 308)

时间:2015-04-04 18:02:26      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:

练习使用字符串函数了。

1、字串的反转也是它的字串,2、最长,3、最先出现

string:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;

int main()
{
    int t, n; 
    string s;
    cin>>t;
    while(t--){
        cin>>s;
        int n = s.size();
        for(int i=n; i>=1; i--){//枚举长度
            for(int j=0; j+i-1<n; j++){//枚举开端
                string ts = s.substr(j, i);
                reverse(ts.begin(), ts.end());
                if(s.find(ts) != string::npos){
                    cout<<s.substr(j, i)<<endl;
                    goto here; 
                }
            }
        }
        here: ;
    }
    
    return 0;
}

char[],用时是上面的一半

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cmath>
using namespace std;
#define N  52

char s[N];
char ts[N];
int main()
{
    int t, n; 
    scanf("%d", &t);
    while(t--){
        scanf("%s", s);
        int n = strlen(s);
        for(int i=n; i>=1; i--){//枚举长度 
            for(int j=0; j+i-1<n; j++){//枚举开端 
                strncpy(ts, s+j, i);
                ts[i] = \0; 
                reverse(ts, ts+i);
                if(strstr(s, ts) != NULL){
                    strncpy(ts, s+j, i);
                    ts[i] = \0; 
                    cout<<ts<<endl;
                    goto here; 
                }
            }
        }
        here: ;
    }
    
    return 0;
}

[河南省ACM省赛-第四届] Substring (nyoj 308)

标签:

原文地址:http://www.cnblogs.com/vegg117/p/4392421.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!