PAT 1077. Kuchiguse (20) 求公共最长后缀, 字符串的整行读取
2018-01-22 00:03
363 查看
/************************* 题意: 求出字符串的最长后缀 ************************/ /*********************** 解题思路: 不断从后往前比较即可。 注意这里要用getline(cin, s)去读取一行字符串 *************************/ /*********************** 笔记: *********************/ #include<iostream> #include<stdio.h> #include<string> #include<vector> #include<queue> #include<stdlib.h> #include<algorithm> #include<string.h> #include<stack> #include<map> #include<set> #include<unordered_map> using namespace std; #define M 1000 #define INF 0x7ffffff string s[M]; int len[M]; int main(){ int i, n, j; scanf("%d", &n); getchar(); int lenmin = INF; for(i = 0;i < n; i++){ getline(cin, s[i]); len[i] = s[i].size(); if(len[i] < lenmin) lenmin = len[i]; } char c; vector<char> ans; j = 1; while(1){ if(len[0] - j < 0) break; c = s[0][len[0] - j]; for( i = 1;i < n; i++){ if(len[i] - j < 0) break; if(s[i][len[i] - j ] != c){ break; } } if(i != n) break; else ans.push_back(c); j++; } if(ans.size() == 0) cout<<"nai"<<endl; else{ for(i = ans.size()-1;i>=0;i--) cout<<ans[i]; cout<<endl; } return 0; }
相关文章推荐
- PAT 1077. Kuchiguse (20)(求最长公共后缀)(差一分)
- PAT (Advanced level) 1077. Kuchiguse (20) 最长共同后缀
- 【后缀数组】 POJ 2774 Long Long Message 两个字符串的最长公共子串长度
- 利用后缀数组求字符串中的最长公共字串——编程珠玑15章
- PAT甲题题解-1077. Kuchiguse (20)-找相同后缀
- POJ2774 后缀数组,求两个字符串的最长公共子串
- 扩展KMP--求字符串S的所有后缀和字符串T的最长公共前缀
- poj 2774 最长公共子串--字符串hash或者后缀数组或者后缀自动机
- HDU 2594 Simpsons’ Hidden Talents 两字符串前缀与后缀的最长公共部分
- hdu1403---Longest Common Substring(后缀数组求2个字符串的最长公共子串)
- poj 3450 Corporate Identity(后缀数组 多个字符串的最长公共字串)
- SPOJ 1812 Longest Common Substring II 后缀自动机求多字符串最长公共子串
- poj 2774 后缀数组 两个字符串的最长公共子串
- 用后缀数组求两个字符串的最长公共子串
- 实用算法实现-第 8 篇 后缀树和后缀数组 [3 两个字符串的最长公共子串]
- 实用算法实现-第 8 篇 后缀树和后缀数组 [3 两个字符串的最长公共子串]
- POJ 2774 Long Long Message(后缀数组 两个字符串的最长公共字串 )
- 两个字符串的最长公共子串-后缀数组
- 北大OJ百练——4073:最长公共字符串后缀(C语言)
- SPOJ 1811. Longest Common Substring (LCS,两个字符串的最长公共子串, 后缀自动机SAM)