1077 Kuchiguse
题目大意:
输出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相关推荐
- PAT甲级1077 Kuchiguse:[C++题解]字符串、最长公共后缀
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 读入n个字符串s[n],以s[0]为基础找公共后缀.枚举后缀的长度,内层循环遍历其他字符串,判断是否后缀相等. 使用子串的函数sub ...
- 1077 Kuchiguse (20point(s)) - C语言 PAT 甲级
1077 Kuchiguse (20point(s)) The Japanese language is notorious for its sentence ending particles. Pe ...
- 1077.Kuchiguse (20)
1077.Kuchiguse (20) pat-al-1077 2017-01-27 本题无坑 方法:把字符串一个一个读进来,每个都逆序一下,并且在这个过程中记录一下最短的字符串的长度:然后开始对每个 ...
- PAT 1077. Kuchiguse
这个题目写不出,完全是C++语法不熟, (1)读入一行字符串:getline(cin, s); (2)字符串的反转:reverse(s.begin(), s.end()); (3)字符串取出某个字符: ...
- 1077. Kuchiguse (20)-PAT甲级真题
The Japanese language is notorious for its sentence ending particles. Personal preference of such pa ...
- 1077.Kuchiguse(20分)
The Japanese language is notorious for its sentence ending particles. Personal preference of such pa ...
- 1077. Kuchiguse (20)
题目如下: The Japanese language is notorious for its sentence ending particles. Personal preference of s ...
- PAT甲题题解-1077. Kuchiguse (20)-找相同后缀
#include <iostream> #include <cstdio> #include <algorithm> #include <string.h&g ...
- 1077 Kuchiguse (20分)
并不是很复杂的判断尾部相同公共部分. 注意要保证最长相同子串要小于等于最短字符串长度: 最后一个测试点,也就是测试点4就是这种情况,其中一个字符串刚好等于公共字符串. 附本人AC代码: #includ ...
最新文章
- 原来这样做运维,就可以不被 KO丨课程推广
- UVA 617 - Nonstop Travel(数论+暴力枚举)
- iOS-数据持久化-第三方框架FMDB的使用
- 【算法系列之十一】k个一组翻转链表
- Delphi语言最好的JSON代码库 mORMot学习笔记1
- Struts2之文件上传(单文件/多文件)
- Java中Random详解
- 内存信息检测软件:Thaiphoon Burner 16.5.0.2
- 【Python爬虫】获取全国客运列车车次及起讫站点位置信息
- 【自定义WPS插件xlam】
- 解决刷GApps时的Error 70报错或64
- ZJU PTA ds 6-1 Percolate Up and Down
- 《中国民生银行天眼日志平台架构演进的平凡之路》阅读有感
- 等额本息与等额本金,从财务管理的角度充分考虑货币时间价值,哪个对于购房人来说更划算?
- mysql memos
- 视频监控系统及系统各节点设备理解和监控系统发展简介
- Win7系统下怎么显示文件的后缀
- 我的周记3——“雨打梨花深闭门,忘了青春,误了青春”
- 二进制安装Kubernetes 高可用集群
- Express 框架