1077 Kuchiguse(20分)(C++)
2036 ワード
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~C++)
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
Sample Input 1:
Sample Output 1:
Sample Input 2:
Sample Output 2:
いくつかの文字数の同じ接尾辞を求めます;
知識点:
1、reverse反転文字列;
2.substr(pos,num)コピー第posからnum個
3.getline(cin,s);
Ninjin wa iyada nyan~ (I hate carrots, nyan~C++)
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、reverse反転文字列;
2.substr(pos,num)コピー第posからnum個
3.getline(cin,s);
#include
#include
using namespace std;
int main(){
int n, len1, len2, len;
string ans, temp;
scanf("%d
", &n);
getline(cin, ans);
for(int i = 1; i < n; ++ i){
getline(cin, temp);
len1 = ans.length();
len2 = temp.length();
for(len = 0; len < min(len1, len2); ++ len)
if(ans[len1 - len - 1] != temp[len2 - len - 1])
break;
ans = ans.substr(len1 - len);
}
ans = (ans == "" ? "nai" : ans);
printf("%s", ans.c_str());
}