1077 Kuchiguse (20分)

1. 题目

2. 思路

  1. 比较两个字符串获取相同尾部
  2. 用尾部去和第三个字符串比较
  3. 如果尾部长度为0退出

3. 注意点

  1. 读入一行中间有空格,PTA不支持gets函数。解决方法看标题5.tip
  2. 一般时间少于400ms的题目都会有超时问题,注意方法的时间复杂度
  3. getline()之气要用getchar()读入一个‘\n‘
  4. 相同字符串的前面的空白字符应该去除(测试中没有这个)

4. 代码

#include<cstdio>
#include<algorithm>
#include<string>
#include<vector>
#include<iostream> 

// 13:28-14:20
using namespace std;

#define MAXN 101

int n;
string s[MAXN];

string same(string end, string s2){
    if(end.length() > s2.length()){
        swap(end, s2);
    }
    for(int i=end.length();i>0;i--){
        if(s2.substr(s2.length()-i, i) == end.substr(end.length()-i, i)){
            return end.substr(end.length()-i, i);
        }
    }
    return "";
}

int main(){
    scanf("%d", &n);
    getchar();
    string temp;
    for(int i=0;i<n;i++){
        getline(cin, temp);
        s[i] = temp;
    }
    string end = s[0];
    for(int i=1;i<n;i++){
        end = same(end, s[i]);
        if(end.length() == 0){
            printf("nai");
            return 0;
        }
    }
    printf("%s", end.data());
}

5. tip

  1. 程序时间一般为400ms. 如果看到少于400ms, 使用暴力法一般都会超时
  2. PTA不能使用itoa(),gets()
    对于gets()函数,我们可以使用getline()函数代替
// 必须头文件
    #include<string>
    #include<iostream>

// 使用方法
    string dst;
    getline(cin, dst); //默认'\n'终止, 可以用第三个参数指定其他

原文地址:https://www.cnblogs.com/d-i-p/p/12426416.html

时间: 2024-10-29 04:16:53

1077 Kuchiguse (20分)的相关文章

【PAT甲级】1077 Kuchiguse (20 分)(cin.ignore()吃掉输入n以后的回车接着用getine(cin,s[i])输入N行字符串)

题意: 输入一个正整数N(<=100),接着输入N行字符串.输出N行字符串的最长公共后缀,否则输出nai. 代码: #include<bits/stdc++.h>using namespace std;string s[107];int length[107];char ans[307];int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin>>n; cin.igno

1077. Kuchiguse (20)【字符串处理】——PAT (Advanced Level) Practise

题目信息 1077. Kuchiguse (20) 时间限制100 ms 内存限制65536 kB 代码长度限制16000 B 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 prefere

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 artistic

PAT 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 artistic

PAT (Advanced Level) 1077. Kuchiguse (20)

最长公共后缀.暴力. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<map> #include<stack> #include<queue> #include<string> #include<algorithm> using namespace std; char s[200][300];

PAT甲题题解-1077. Kuchiguse (20)-找相同后缀

#include <iostream> #include <cstdio> #include <algorithm> #include <string.h> #include <cmath> using namespace std; /* 找最长相同后缀 */ const int maxn=105; char str[maxn][300]; char ans[300]; int len[maxn]; int main() { int n; int

PAT:1077. Kuchiguse (20) AC

#include<stdio.h> #include<string.h> char in[100][260]; int main() { int n,lenMIN=260; scanf("%d",&n); getchar(); //[skill]吸收换行符 for(int i=0 ; i<n ; ++i) { gets(in[i]); int len=strlen(in[i]); if(len<lenMIN) lenMIN=len; for(

1077. Kuchiguse

1077. Kuchiguse (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 HOU, Qiming 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

pat1077. Kuchiguse (20)

1077. Kuchiguse (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 HOU, Qiming 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