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:
1 2 3 4 | 3 Itai nyan~ Ninjin wa iyadanyan~ uhhh nyan~ |
Sample Output 1:
1 | nyan~ |
Sample Input 2:
1 2 3 4 | 3 Itai! Ninjinnwaiyada T_T T_T |
Sample Output 2:
1 | nai |
题目大意:
给定这些字符串,找到公共后缀
分析:
因为求最长相同后缀,在一开始获取字符串的时候便将字符串倒置存放。
从第二个字符串开始,向前比较,获取相同的公共字符串。
从第三个开始,将字符串和公共字符串进行比较,进一步缩短或者保持不变公共字符串。
最后输出倒置的公共字符串
Python实现:
if __name__ =="__main__":
num = int(input())
get = []
common = ''
length = 0
flag = True
for x in range(num):
line = input()[::-1]
get.append(line)
if common == '':
common = line
length = len(line)
else:
if line[0] != common[0]:
print('nai')
flag = False
break
else:
temp = ''
for i in range(min([len(line),len(common)])):
if line[i] == common[i] :
length = i + 1
else:
break
if length < len(common):
common = common[:length]
if flag:
print(common[::-1])