zoukankan      html  css  js  c++  java
  • PTA (Advanced Level)1077.Kuchiguse

    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<bits/stdc++.h>
    using namespace std;
    vector<string> v;
    int main()
    {
    	int n;
    	scanf("%d
    ", &n);    //注意要把换行符也读进来
    	int shortest = 500;
    	string s;
    	for(int i=0;i<n;i++)
    	{
    		getline(cin, s);
    		if(s.size() < shortest) shortest = s.size();
    		reverse(s.begin(), s.end());
    		v.push_back(s);
    	}
    
    	bool right;
    	int index = 0;
    	for(int i=0;i<shortest;i++)
    	{
    		char ch = v[0][i];
    		right = true;
    		for(int j=1;j<n;j++)
    		{
    			if(v[j][i] != ch)
    			{
    				right = false;
    				break;
    			}
    		}
    		if(right)	index++;
    		else	break;
    	}
    
    	if(index == 0)
    		cout << "nai";
    	else
    		for(int i=index-1;i>=0;i--)
    			cout << v[0][i];
    	return 0;
    }
    
    
    
    引用

    https://pintia.cn/problem-sets/994805342720868352/problems/994805390896644096

  • 相关阅读:
    正则:连续数字
    [f]聊天的时间格式化
    微信物理返回刷新页面
    npm 使用记录
    Java内存可见性volatile
    EA通过MySQL多人协作
    Sonarqube Webhook自定义参数
    使用阿里云加速Docker镜像下载
    Java异常堆栈丢失的现象及解决方法
    fo-dicom库 Dicom.Native.dll如何自动到编译输出目录
  • 原文地址:https://www.cnblogs.com/MartinLwx/p/11725343.html
Copyright © 2011-2022 走看看