HDOJ1238 C++字符串函数水题
2017-08-23 22:07
260 查看
Substrings
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10797 Accepted Submission(s): 5167
Problem Description
You are given a number of case-sensitive strings of alphabetic characters, find the largest string X, such that either X, or its inverse can be found as a substring of any of the given strings.
Input
The first line of the input file contains a single integer t (1 <= t <= 10), the number of test cases, followed by the input data for each test case. The first line of each test case contains a single integer n (1 <= n <= 100), the number of given strings,
followed by n lines, each representing one string of minimum length 1 and maximum length 100. There is no extra white space before and after a string.
Output
There should be one line per test case containing the length of the largest string found.
Sample Input
2
3
ABCD
BCDFF
BRCD
2
rose
orchid
Sample Output
2
2
Author
Asia 2002, Tehran (Iran), Preliminary
Recommend
Eddy | We have carefully selected several similar problems for you: 1239 1015 1401 1515 1597
主要是数据太水了。。。
#include <ctime> #include <iostream> #include <cmath> #include <cstring> #include <algorithm> using namespace std; const int maxn = 105; int n,i,j,k; string str[maxn]; bool cmp(string a, string b) { return a.length()<b.length(); } void init(){ cin >> n; for (i=1; i<=n; i++) cin >> str[i]; sort(str+1,str+n+1,cmp); } int Find(){ int tmp,len; bool flag; string s = str[1]; len = s.length(); string temp,retmp; for (i=len; i>=1; i--) { for (j=0;j+i<=len; j++) { flag = 1; temp = s.substr(j,i); //从第j位开始复制长度i的字符串 retmp = temp; reverse(retmp.begin(),retmp.end()); //反转 for (k=2; k<=n; k++) if (str[k].find(temp)==-1 && str[k].find(retmp)==-1) { flag = 0; break; } if (flag) return i; } } return 0; } int main(){ std::ios::sync_with_stdio(false); int t; cin >> t; while (t--) { init(); cout << Find() << endl; } return 0; }
相关文章推荐
- C++ hdoj 2043 密码
- hdoj 1225 football sorce(尝试了50次的水题)
- HDOJ 题目2073 无限的路(水题)
- hdoj--5567--sequence1(水题)
- HDOJ1005 Number Sequence(数论水题)
- hdoj--5333--Dancing Stars on Me(水题)
- c++ 字符串函数用法举例
- [水题][hdoj_1090]A+B for Input-Output Practice (II)
- HDOJ 2304 Electrical Outlets(水题)
- HDOJ--2092--整数解(水题)
- HDOJ 1238 Substrings 【最长公共子串】
- C++ HDOJ 1020
- hdoj 1994 利息计算 【水题】
- NOJ上面的前十个水题试手;C++可以输出小数点后任意位次。
- HDOJ 5122 K.Bro Sorting 水题
- hdoj 5610 Baby Ming and Weight lifting 【暴力】【水题】
- HDOJ2001 ( 计算两点间的距离 ) 【水题】
- HDOJ2020 ( 绝对值排序 ) 【水题】
- HDOJ 题目1861 游船出租(水题)
- hdoj 1020 Encoding (水题)