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

1077 Kuchiguse (20 分)

时间:2021-02-17 14:18:36      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:main   注意   out   cout   一个   lin   else   ignore   ==   

一眼二分。

注意点:

  1. 在读入n之后要使用getchar接收后面的换行符,否则会使for循环内的getline读入这个换行符,导致第一个字符串读取错误。
  2. 最后输出答案前要先check一遍
const int N=110;
string a[N];
string suffix;
int n;

bool check(int mid)
{
    suffix=a[0].substr(a[0].size()-mid);
    for(int i=1;i<n;i++)
        if(a[i].substr(a[i].size()-mid) != suffix)
            return false;
    return true;
}

int main()
{
    cin>>n;
    cin.ignore();

    int l=0,r=256;
    for(int i=0;i<n;i++)
    {
        getline(cin,a[i]);
        r=min(r,(int)a[i].size());
    }

    while(l<r)
    {
        int mid=l+r+1>>1;
        if(check(mid)) l=mid;
        else r=mid-1;
    }

    if(l == 0) puts("nai");
    else
    {
        check(l);
        cout<<suffix<<endl;
    }

    //system("pause");
    return 0;
}

1077 Kuchiguse (20 分)

标签:main   注意   out   cout   一个   lin   else   ignore   ==   

原文地址:https://www.cnblogs.com/fxh0707/p/14401573.html

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