1077 Kuchiguse (20point(s)) Easy only once
Posted songlinxuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1077 Kuchiguse (20point(s)) Easy only once相关的知识,希望对你有一定的参考价值。
基本思想:
和示例一样,将后缀子串问题变为前缀子串问题判断,这样比较简单;
关键点:
前后缀子串,利用reverse函数更快;
1 #include<iostream> 2 #include<stdlib.h> 3 #include<stdio.h> 4 #include<vector> 5 #include<string> 6 #include<math.h> 7 #include<algorithm> 8 using namespace std; 9 using std::vector; 10 11 vector<string>vec; 12 13 int main() { 14 int n; 15 scanf("%d ", &n); 16 int m = 257; 17 for (int i = 0; i < n; i++) { 18 string s; 19 getline(cin, s); 20 if (s.size() < m) 21 m = s.size(); 22 reverse(s.begin(), s.end()); 23 vec.push_back(s); 24 } 25 bool flag = true; 26 int index=-1; 27 for (int i = 0; i < m&&flag; i++) { 28 for (int j = 1; j < vec.size(); j++) { 29 if (vec[j][i] != vec[j - 1][i]) 30 flag = false; 31 } 32 if (flag) 33 index = i; 34 } 35 if (index == -1) { 36 cout << "nai" << endl; 37 system("pause"); 38 return 0; 39 } 40 string f = vec[0].substr(0, index + 1); 41 reverse(f.begin(), f.end()); 42 cout << f << endl; 43 system("pause"); 44 return 0; 45 }
以上是关于1077 Kuchiguse (20point(s)) Easy only once的主要内容,如果未能解决你的问题,请参考以下文章
pat 1077 Kuchiguse(20 分) (字典树)
1077 Kuchiguse (20 分)求字符串最长相同后缀