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
#include<stdio.h> #include<iostream> #include<string> #include<map> #include<vector> #include<set> #include<algorithm> using namespace std; int main() { int N; cin >> N; vector<string> v; string s; getchar(); while (N--) { getline(cin, s); reverse(s.begin(),s.end()); v.push_back(s); } int minLen = 300; for (int i = 0; i < v.size(); i++) { if (minLen > v[i].size()) { minLen = v[i].size(); } } int passNumbers = 0; int i; for (i = 0; i < minLen; i++) { passNumbers = 0; for (int j = 0; j < v.size()-1; j++) { if (v[j][i] == v[j + 1][i]) passNumbers++; } if (passNumbers != v.size() - 1) break; } string commonsuffix; if (i) { commonsuffix = v[0].substr(0, i); reverse(commonsuffix.begin(), commonsuffix.end()); cout << commonsuffix; } else cout << "nai"; }