pat1077. Kuchiguse (20)

1077. Kuchiguse (20)

时间限制

100 ms

内存限制

65536 kB

代码长度限制

16000 B

判题程序

Standard

作者

HOU, Qiming

The Japanese language is notorious for its sentence ending particles. Personal preference of such particles can be considered as a reflection of the speaker‘s personality. Such a preference is called "Kuchiguse" and is often exaggerated artistically in Anime and Manga. For example, the artificial sentence ending particle "nyan~" is often used as a stereotype for characters with a cat-like personality:

  • Itai nyan~ (It hurts, nyan~)
  • Ninjin wa iyada nyan~ (I hate carrots, nyan~)

Now given a few lines spoken by the same character, can you find her Kuchiguse?

Input Specification:

Each input file contains one test case. For each case, the first line is an integer N (2<=N<=100). Following are N file lines of 0~256 (inclusive) characters in length, each representing a character‘s spoken line. The spoken lines are case sensitive.

Output Specification:

For each test case, print in one line the kuchiguse of the character, i.e., the longest common suffix of all N lines. If there is no such suffix, write "nai".

Sample Input 1:

3
Itai nyan~
Ninjin wa iyadanyan~
uhhh nyan~

Sample Output 1:

nyan~

Sample Input 2:

3
Itai!
Ninjinnwaiyada T_T
T_T

Sample Output 2:

nai


提交代码

题目其实也是一知半解,但就是AC了。。

 1 #include<iostream>
 2 #include<string>
 3 #include<cstdio>
 4 #include<cstring>
 5 #include<algorithm>
 6 using namespace std;
 7 char line[105][300];
 8 bool cmp(char *a,char *b){
 9     return strlen(a)<strlen(b);
10 }
11 int main(){
12   //freopen("D:\\INPUT.txt","r",stdin);
13   int n,i;
14   scanf("%d",&n);
15   getchar();
16   for(i=0;i<n;i++){
17     cin.getline(line[i],300);
18   }
19   /*for(i=0;i<n;i++){
20     cout<<line[i]<<endl;
21   }*/
22   //sort(line,line+n,cmp);
23   int j=1,k,len;
24   char c;
25   string s="";
26   for(i=1;i<=strlen(line[0]);i++){
27     c=line[0][strlen(line[0])-i];
28     for(k=1;k<n;k++){
29         len=strlen(line[k]);
30         if(len<i||line[k][len-i]!=c){
31             break;
32         }
33     }
34     if(k==n){
35         s=c+s;
36     }
37     else{
38         break;
39     }
40   }
41   if(s!=""){
42     cout<<s<<endl;
43   }
44   else{
45     cout<<"nai\n";
46   }
47 }
时间: 2024-10-14 07:08:07

pat1077. Kuchiguse (20)的相关文章

1077. Kuchiguse (20)【字符串处理】——PAT (Advanced Level) Practise

题目信息 1077. Kuchiguse (20) 时间限制100 ms 内存限制65536 kB 代码长度限制16000 B The Japanese language is notorious for its sentence ending particles. Personal preference of such particles can be considered as a reflection of the speaker's personality. Such a prefere

PAT1077. Kuchiguse

The Japanese language is notorious for its sentence ending particles. Personal preference of such particles can be considered as a reflection of the speaker's personality. Such a preference is called "Kuchiguse" and is often exaggerated artistic

PAT 1077 Kuchiguse (20)

The Japanese language is notorious for its sentence ending particles. Personal preference of such particles can be considered as a reflection of the speaker's personality. Such a preference is called "Kuchiguse" and is often exaggerated artistic

1077. Kuchiguse (20)

The Japanese language is notorious for its sentence ending particles. Personal preference of such particles can be considered as a reflection of the speaker's personality. Such a preference is called "Kuchiguse" and is often exaggerated artistic

1077 Kuchiguse (20分)

1. 题目 2. 思路 比较两个字符串获取相同尾部 用尾部去和第三个字符串比较 如果尾部长度为0退出 3. 注意点 读入一行中间有空格,PTA不支持gets函数.解决方法看标题5.tip 一般时间少于400ms的题目都会有超时问题,注意方法的时间复杂度 getline()之气要用getchar()读入一个'\n' 相同字符串的前面的空白字符应该去除(测试中没有这个) 4. 代码 #include<cstdio> #include<algorithm> #include<str

PAT (Advanced Level) 1077. Kuchiguse (20)

最长公共后缀.暴力. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<map> #include<stack> #include<queue> #include<string> #include<algorithm> using namespace std; char s[200][300];

PAT甲题题解-1077. Kuchiguse (20)-找相同后缀

#include <iostream> #include <cstdio> #include <algorithm> #include <string.h> #include <cmath> using namespace std; /* 找最长相同后缀 */ const int maxn=105; char str[maxn][300]; char ans[300]; int len[maxn]; int main() { int n; int

PAT:1077. Kuchiguse (20) AC

#include<stdio.h> #include<string.h> char in[100][260]; int main() { int n,lenMIN=260; scanf("%d",&n); getchar(); //[skill]吸收换行符 for(int i=0 ; i<n ; ++i) { gets(in[i]); int len=strlen(in[i]); if(len<lenMIN) lenMIN=len; for(

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

题意: 输入一个正整数N(<=100),接着输入N行字符串.输出N行字符串的最长公共后缀,否则输出nai. 代码: #include<bits/stdc++.h>using namespace std;string s[107];int length[107];char ans[307];int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin>>n; cin.igno