【PAT甲级】1077 Kuchiguse (20 分)(cin.ignore()吃掉输入n以后的回车接着用getine(cin,s[i])输入N行字符串)

题意:

输入一个正整数N(<=100),接着输入N行字符串。输出N行字符串的最长公共后缀,否则输出nai。

AAAAAccepted code:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 string s[107];
 4 int length[107];
 5 char ans[307];
 6 int main(){
 7     ios::sync_with_stdio(false);
 8     cin.tie(NULL);
 9     cout.tie(NULL);
10     int n;
11     cin>>n;
12     cin.ignore();
13     int mn=999999;
14     for(int i=1;i<=n;++i){
15         getline(cin,s[i]);
16         length[i]=s[i].size();
17         mn=min(mn,length[i]);
18     }
19     int cnt=0;
20     for(int x=1;x<=mn;++x){
21         int flag=0;
22         for(int i=2;i<=n;++i)
23             if(s[i][length[i]-x]!=s[i-1][length[i-1]-x]){
24                 flag=1;
25                 break;
26             }
27         if(flag)
28             break;
29         ans[++cnt]=s[1][length[1]-x];
30     }
31     if(!cnt)
32         cout<<"nai";
33     else
34         for(int i=cnt;i;--i)
35             cout<<ans[i];
36     return 0;
37 } 

 

 

 

posted @ 2019-11-08 15:02  sewage  阅读(126)  评论(0编辑  收藏  举报