题目大意:

输出n个字符串的最长公共后缀,没有就输出“nai”。

解题思路:

首先比较前两个找出公共后缀,然后依次和后面的字符串比较,维护公共后缀即可。或者也可以顺序两两比较维护一个最小公共后缀的长度的变量,这里给出第一种暴力思维的代码。
代码如下:

#include<iostream>
#include<cstdio>
#include<fstream>
#include<set>
#include<cmath>
#include<cstring>
#include<string>
#include<map>
#include<vector>
#include<iomanip>
#include<cstdlib>
#include<list>
#include<queue>
#include<stack>
#include<algorithm>
#define inf 0x3f3f3f3f
#define MOD 1000000007
#define mem0(a) memset(a,0,sizeof(a))
#define mem1(a) memset(a,-1,sizeof(a))
#define meminf(a) memset(a,inf,sizeof(a))
//vector ::iterator it;
//set<int>::iterator iter;
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
int main()
{//std::ios::sync_with_stdio(false);//cin.tie(0);char a[110][300];int n1,n2,i=0;cin>>n1;n2=n1;getchar();while(n1--)//输入{int j=0;char c;while(c=getchar()){if(c=='\n')break;//注意循环截止的条件a[i][j]=c;j++;}i++;}string s1;int t=0,k1,k2;int len1=strlen(a[0])-1,len2=strlen(a[1])-1;for(k1=len1,k2=len2;k1>=0&&k2>=0;k1--)//先从前两行找到公共后缀{if(a[0][k1]==a[1][k2]){s1+=a[0][k1];k2--;}else break;}for(int j=2;j<n2;j++)//更新公共后缀{string s2;//临时保存当前公共后缀int len3=strlen(a[j])-1,t1=0,t2;for(t2=len3;t2>=0&&t1<s1.size();t2--){if(s1[t1]==a[j][t2]){t1++;s2+=a[j][t2];}else break;}s1=s2;}if(s1.size()){for(int j=s1.size()-1;j>=0;j--)cout<<s1[j];}else cout<<"nai";cout<<endl;//freopen("test.txt","r",stdin);//freopen("output.txt","w",stdout);return 0;
}

1077 Kuchiguse相关推荐

  1. PAT甲级1077 Kuchiguse:[C++题解]字符串、最长公共后缀

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 读入n个字符串s[n],以s[0]为基础找公共后缀.枚举后缀的长度,内层循环遍历其他字符串,判断是否后缀相等. 使用子串的函数sub ...

  2. 1077 Kuchiguse (20point(s)) - C语言 PAT 甲级

    1077 Kuchiguse (20point(s)) The Japanese language is notorious for its sentence ending particles. Pe ...

  3. 1077.Kuchiguse (20)

    1077.Kuchiguse (20) pat-al-1077 2017-01-27 本题无坑 方法:把字符串一个一个读进来,每个都逆序一下,并且在这个过程中记录一下最短的字符串的长度:然后开始对每个 ...

  4. PAT 1077. Kuchiguse

    这个题目写不出,完全是C++语法不熟, (1)读入一行字符串:getline(cin, s); (2)字符串的反转:reverse(s.begin(), s.end()); (3)字符串取出某个字符: ...

  5. 1077. Kuchiguse (20)-PAT甲级真题

    The Japanese language is notorious for its sentence ending particles. Personal preference of such pa ...

  6. 1077.Kuchiguse(20分)

    The Japanese language is notorious for its sentence ending particles. Personal preference of such pa ...

  7. 1077. Kuchiguse (20)

    题目如下: The Japanese language is notorious for its sentence ending particles. Personal preference of s ...

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

    #include <iostream> #include <cstdio> #include <algorithm> #include <string.h&g ...

  9. 1077 Kuchiguse (20分)

    并不是很复杂的判断尾部相同公共部分. 注意要保证最长相同子串要小于等于最短字符串长度: 最后一个测试点,也就是测试点4就是这种情况,其中一个字符串刚好等于公共字符串. 附本人AC代码: #includ ...

最新文章

  1. 原来这样做运维,就可以不被 KO丨课程推广
  2. UVA 617 - Nonstop Travel(数论+暴力枚举)
  3. iOS-数据持久化-第三方框架FMDB的使用
  4. 【算法系列之十一】k个一组翻转链表
  5. Delphi语言最好的JSON代码库 mORMot学习笔记1
  6. Struts2之文件上传(单文件/多文件)
  7. Java中Random详解
  8. 内存信息检测软件:Thaiphoon Burner 16.5.0.2
  9. 【Python爬虫】获取全国客运列车车次及起讫站点位置信息
  10. 【自定义WPS插件xlam】
  11. 解决刷GApps时的Error 70报错或64
  12. ZJU PTA ds 6-1 Percolate Up and Down
  13. 《中国民生银行天眼日志平台架构演进的平凡之路》阅读有感
  14. 等额本息与等额本金,从财务管理的角度充分考虑货币时间价值,哪个对于购房人来说更划算?
  15. mysql memos
  16. 视频监控系统及系统各节点设备理解和监控系统发展简介
  17. Win7系统下怎么显示文件的后缀
  18. 我的周记3——“雨打梨花深闭门,忘了青春,误了青春”
  19. 二进制安装Kubernetes 高可用集群
  20. Express 框架

热门文章

  1. mysql 权限管理
  2. == 和 ===的区别
  3. 长生诀linux架设教程,手游【长生诀】VM一键即玩服务端+GM工具+图文教程
  4. PRML学习总结(6)——Kernel Methods
  5. 使用Python写一个天天酷跑
  6. idea查看每行代码是谁修改的
  7. 网络营销十大要点秒懂
  8. linux下删除文件夹及下面所有文件
  9. 实验三 迷宫游戏开发
  10. Jlink使用技巧系列教程索引