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

题目大意:找出字符串末尾想的的部分;思路:因为每个字符串的长度不一致,所以在输入的时候, 把每一个字符串颠倒一下     输入的时候,找到最短字符串的长度     遍历每个字符串,查看有多少个连续的相等的字符串;注意点:在输入整数n后必须用cin.get()把换行符吸收掉;否则会被当做第一个字符串输入       在末尾相等子串的长度的时候, 必须n个字符串都相等, 才能把长度+1
 1 #include<iostream>
 2 #include<string>
 3 #include<algorithm>
 4 using namespace std;
 5 int main(){
 6   int n, i;
 7   cin>>n;
 8   cin.get();
 9   string s[100];
10   int minn=99999999;
11   for(i=0; i<n; i++){
12     getline(cin, s[i]);
13     reverse(s[i].begin(), s[i].end());
14
15     if(s[i].size()<minn) minn = s[i].size();
16   }
17   int cnt=0, f=1;
18   for(i=0; i<minn&&f; i++){
19     f = 1;
20     for(int j=0; j<n-1; j++){
21         if(s[j][i]!=s[j+1][i]){
22             f=0;
23               break;
24         }
25     }
26     if(f) cnt++;
27   }
28
29   if(cnt==0) cout<<"nai"<<endl;
30   else{
31     s[0] = s[0].substr(0, cnt);
32     reverse(s[0].begin(), s[0].end());
33     cout<<s[0]<<endl;
34   }
35   return 0;
36 }

原文地址:https://www.cnblogs.com/mr-stn/p/9230599.html

时间: 2024-11-10 00:08:36

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

pat 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

[PAT] 1077 Kuchiguse (20 分)Java

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(

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

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