题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805390896644096

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-1个字符串与第一个字符串比较,定义一个指针从后往前推,遇到和第一个不相同的就退出。

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,len;
	char a[101][300];
	char ans[300];
	char tt[300];
	while(cin>>n){
		getchar();
		for(int i=0;i<n;i++){
			fgets(a[i],300,stdin);
			len=strlen(a[i]);
			a[i][len-1]='\0';
		}
		int t=0;
		while(1){
			int f=0;
			if(strlen(a[0])-1-t<0){
				break;
			}
			for(int i=1;i<n;i++){
				len=strlen(a[i]);
				if(len-1-t<0){
					f=1;
					break;
				}
				if(a[i][len-1-t]!=a[0][strlen(a[0])-1-t]){
					f=1;
					break;
				}
			}
			if(f){
				break;
			}
			ans[t]=a[0][strlen(a[0])-1-t];
			t++;
		}
		if(t==0){
			cout<<"nai"<<endl;
		}
		else {
			for(int i=t-1;i>=0;i--){
				cout<<ans[i];
			}
			cout<<endl;
		}
	}
	return 0;
}

PAT (Advanced Level) Practice — 1077 Kuchiguse (20 分)

相关文章: