1077 Kuchiguse (20 分)

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 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

分析: 求字符串的公共后缀。思路是先逆置字符串,然后从第一个开始比较。
 1 /**
 2 * Copyright(c)
 3 * All rights reserved.
 4 * Author : Mered1th
 5 * Date : 2019-02-24-21.51.09
 6 * Description : A1077
 7 */
 8 #include<cstdio>
 9 #include<cstring>
10 #include<iostream>
11 #include<cmath>
12 #include<algorithm>
13 #include<string>
14 #include<unordered_set>
15 #include<map>
16 #include<vector>
17 #include<set>
18 using namespace std;
19 const int maxn=110;
20 string a[maxn];
21 int main(){
22 #ifdef ONLINE_JUDGE
23 #else
24     freopen("1.txt", "r", stdin);
25 #endif
26     int n,minlen=10000;
27     cin>>n;
28     getchar();
29     for(int i=0;i<n;i++){
30         getline(cin,a[i]);
31         int len=a[i].size();
32         if(minlen>len) minlen=len;
33         reverse(a[i].begin(),a[i].end());
34     }
35     string ans="";
36     for(int i=0;i<minlen;i++){
37         char c=a[0][i];
38         bool same=true;
39         for(int j=1;j<n;j++){
40             if(c!=a[j][i]){
41                 same=false;
42                 break;
43             }
44         }
45         if(same) ans+=c;
46         else break;
47     }
48     if(ans.size()){
49         reverse(ans.begin(),ans.end());
50         cout<<ans;
51     }
52     else{
53         cout<<"nai";
54     }
55     return 0;
56 }

原文地址:https://www.cnblogs.com/Mered1th/p/10428474.html

时间: 2024-10-11 06:58:41

1077 Kuchiguse (20 分)的相关文章

1077 Kuchiguse (20分)

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

【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

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

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

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

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(

1077. Kuchiguse

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

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