Blue Jeans - POJ 3080 - Virtual Judge
数据量不大,枚举第一个字符串的每一个字串即可,string::npos = -1,记录一下string类的一些函数调用
AC代码:
#include <iostream> #include <string> #include <cstring> #include <vector> #include <cstdio> #include <stdio.h> #include <string.h> using namespace std; void solve() { int n; cin >> n; string s[11]; string str="no significant commonalities"; for (int i = 1; i <= n; i++) { cin >> s[i]; } for (int i = 3; i <= 60; i++) { for (int j = 0; j <= 60 - i; j++) { string sub = s[1].substr(j, i); bool flag = true; for (int k = 2; k <= n; k++) { if (s[k].find(sub) == string::npos) { flag = false; break; } } if (!flag) { continue; } else { if (str == "no significant commonalities") { str = sub; } else if (str.size() < sub.size()) { str = sub; } else if (str.size() == sub.size()) { str = min(str, sub); } } } } cout << str << '\n'; } int main() { ios::sync_with_stdio(false); cin.tie(0);cout.tie(0); int t; cin >> t; while (t--) { solve(); } return 0; }
11-18
170