poj 3080
来源:互联网 发布:麦可思数据公司 编辑:程序博客网 时间:2024/05/22 15:00
所得: string类型可以直接比较大小, 比较的原则是按字典树的大小比较 ,string temp = str[0].substr(i, j)
截取子串i到j的子串 temp;
str[k].find(temp) == string::npos 查找str[k]中是否有temp子串, 成立的条件是没有temp子串,
以上对字符串的处理十分简便,(字符串的匹配)
截取子串i到j的子串 temp;
str[k].find(temp) == string::npos 查找str[k]中是否有temp子串, 成立的条件是没有temp子串,
以上对字符串的处理十分简便,(字符串的匹配)
#include <iostream>#include <cstdio>#include <cstring>using namespace std;int n, m;string str[12];void work(int m) { for(int i = 0; i < m; i++) { cin>>str[i]; } string maxn = ""; for(int i = 0; i < str[0].size(); i++) { for(int j = 3; j + i <= str[0].size(); j++) { string temp = str[0].substr(i, j); //提取从i到j的子串, int flag = 1; for(int k = 1; k < m; k++) if(str[k].find(temp) == string::npos) { //查找 k到 m子串中是否存在 子串 temp;该条件判断不存在; flag = 0; break; } if(flag) { //存在; if(j > maxn.size()) { //是否可以更新长度; maxn = temp; } if(j == maxn.size() && temp < maxn) { //查找字典树较小的一个; maxn = temp; } } } } if(maxn.size() < 3) { printf("no significant commonalities\n"); } else cout<<maxn<<endl;}int main(){ scanf("%d", &n); while(n--) { scanf("%d", &m); work(m); } return 0;}
0 0
- POJ 3080
- poj 3080
- poj.3080
- poj 3080
- poj-3080
- poj 3080
- poj 3080
- poj 3080
- poj-3080
- poj-3080
- POJ 3080
- poj 3080
- POJ 3080 POJ 3450 KMP
- poj 3080 kmp
- poj 3080 Blue Jeans
- poj 3080 KMP+暴力
- poj 3080 Blue Jeans
- poj 3080 Blue Jeans
- 滑动菜单栏(三)SlidingMenu动画效果的实现
- 更改KVM虚拟机的磁盘大小 ;挂载虚拟机磁盘到宿主机上。
- VI环境设置
- 【环球时报综合报道】2014年中国的挑战来源于哪里?
- [NCE2]Lesson 6. Percy Buttons
- poj 3080
- 2014年寒假学习,java与C#的区别
- 41-求一个3*3矩阵对角线元素之和
- 怎么防止邮件被判为垃圾邮件?【邮件群发的技巧点滴】
- 尝试着说,尝试着做
- 数据结构之链表学习
- 基于高通MSM 8x60的I2C驱动终极讲解(9)
- 基于高通MSM 8x60的I2C驱动终极讲解(10)
- 自定义控件(商品属性选择)