poj3080 很好的字符串模拟题
2014-04-07 11:04
218 查看
#include <iostream> #include <cstdio> #include <cstring> using namespace std; char str[15][80]; int n, m; int main() { scanf("%d", &n); while(n--) { scanf("%d", &m); getchar(); for(int i = 0; i < m; i++) { scanf("%s", str[i]); } char s1[70]; char ans[70]; int t = 0; int len = strlen(str[0]); for(int i = 0; i < len; i++) { //枚举第一串长度大于3的字串。 for(int j = i + 2; j < len; j++) { strncpy(s1, str[0]+i, j - i + 1); //截取str[0]中i 到j-i + 1 这一段的字符; s1[j-i + 1] = '\0'; //需要手动加上'\0'结束符。 // printf("%s\n", s1); int flag = 1; for(int k = 1; k < m&&flag; k++) { if(strstr(str[k], s1) == NULL) { //用该字串和其它串进行匹配。 flag = 0; } } // printf("%d\n", flag); if(flag) { if(t == 0) { strcpy(ans, s1); t++; }else { int ans1 = strlen(ans); int slen = strlen(s1); if(ans1 < slen) { strcpy(ans, s1); }else if(ans1 == slen && strcmp(ans, s1) > 0) { strcpy(ans, s1); } } } } } if(t != 0) { printf("%s\n", ans); }else { printf("no significant commonalities\n"); } } return 0; }
相关文章推荐
- A2W和W2A :很好的多字节和宽字节字符串的转换宏
- A2W和W2A :很好的多字节和宽字节字符串的转换宏
- A2W和W2A :很好的多字节和宽字节字符串的转换宏
- hdu 2629 Identity Card (字符串解析模拟题)
- hdu 4039 字符串模拟题
- 蓝桥杯模拟题-字符串比较
- G-Ternary Calculation(字符串模拟题)
- 对字符串进行加解密的常用方法-对初学者来说是个很好的入门
- NOIP 模拟题 奇怪的字符串
- leetcode 434. Number of Segments in a String 按照空格分割字符串 + C++的stringstream的一个很好应用示范
- 十六进制字符串转换成十进制整数 天梯赛模拟题重现一
- 看了水兄的关于字符串处理的2005方法,很好,就是没看懂,最后把相关知识帖了,放进我的博客里,供自己和大家学习。
- A2W和W2A :很好的多字节和宽字节字符串的转换宏
- NOIP模拟题 2016.11.11 [搜索] [动态规划] [网络流] [字符串处理]
- HDOJ1035 Robot Motion(模拟题,字符串)
- poj 1051 P,MTHBGWB (模拟题字符串 )
- D - String Successor 字符串模拟题 耗时!
- HDOJ(1013) ——Digital Roots(字符串模拟题)
- poj3080,poj3450 多个字符串求最长公共子串问题 KMP,SA,SAM:
- 剑指offer——字符串的排列(好题,扩展题也很好,全排列的算法)