题目大意:给定n个字符串,让你找到他们的最长公共字符串后缀是什么,可能为空。
分析:题目数据范围比较小,可以O(n*n)暴力匹配,即可解决这道问题。之所以写这道题的题解还是因为写字符串的题还不够多啊,菜的一批。
代码:
#include<bits/stdc++.h> using namespace std; string common(string s,string t) { int most = 0; int len = min(s.length(), t.length()); for (int i = 0; i < len; i++) { if (s[i] == t[i]) most++; else break; } return s.substr(0, most); } int main() { int n; while (cin >> n) { if (!n) break; string s; cin >> s; reverse(s.begin(), s.end()); n--; for (int i = 0; i < n; i++) { string t; cin >> t; reverse(t.begin(), t.end()); s = common(s, t); } reverse(s.begin(), s.end()); cout << s << endl; } return 0; }