hdu 1238 字符串的简单运用
来源:互联网 发布:湖南大学有网络教育 编辑:程序博客网 时间:2024/06/06 23:51
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<cmath>#include<queue>#include<stack>#include<map>#include<set>#include<vector>using namespace std;typedef long long ll;#define inf 0x3f3f3f3f#define eps 1e-10#define maxl 30010#define mem(i,j) memset(i,j,sizeof(i))string s[110];int n,id,res;bool judge(string str){//判断子串和子串反串在不在所以得字符串里面 string rev; for(int i=str.length()-1,j=0;i>=0;i--) rev+=str[i]; for(int i=0;i<n;i++){ if(s[i].find(str)==s[i].npos&&s[i].find(rev)==s[i].npos) return false; } return true;}void solve(){ int len=s[id].length(); res=0; for(int i=0;i<len;i++){//枚举所有的最短串的子串 for(int j=len-1;j>=i;j--){ if(j-i+1<res) continue; //这里是个剪枝 可以节省不必要的时间浪费 string s1=s[id].substr(i,j-i+1); if(judge(s1)) res=max(res,j-i+1); } } cout<<res<<endl;}int main(){ freopen("in.txt", "r", stdin); int t; cin>>t; while(t--){ cin>>n; int ans=inf; id=0; for(int i=0;i<n;i++){ cin>>s[i]; int len=s[i].length(); if(len<ans) {ans=len;id=i;} } solve(); }}
0 0
- hdu 1238 字符串的简单运用
- hdu 2454 简单图性质的运用
- hdu 2087(KMP的简单运用)
- HDU 2037 贪心法的简单运用
- HDU 2203 亲和串(多个字符串函数的运用)
- 剪花布条 hdu 2087 KMP算法的简单运用
- HDU 1082 Matrix Chain Multiplication(堆栈的简单运用)
- 字符串的运用
- 字符串的运用2
- OC-字符串的运用
- ERwin的简单运用
- Log4j的简单运用
- ERwin的简单运用
- 克隆的简单运用
- URL的简单运用
- Log4j的简单运用
- XML的简单运用
- Log4j的简单运用
- iOS拨打电话的三种方法
- POJ 3620 Avoid The Lakes(DFS)
- 日期字符串相互转换
- HDU 5402 Travelling Salesman Problem
- 学习正则表达式:Matcher类
- hdu 1238 字符串的简单运用
- 有关期刊投稿
- 2013年海康威视校园招聘笔试题
- 装饰设计模式 Java版
- Android内存优化
- 文章标题
- ajax跨域
- gdb: info breakpoints显示所有断点
- mysql的GROUP_CONCAT函数的用法