fzu Problem 2128 最长子串 (注意strstr函数的使用)
来源:互联网 发布:blooming服装 知乎 编辑:程序博客网 时间:2024/05/22 01:51
1、http://acm.fzu.edu.cn/problem.php?pid=2128
2、题目:
对于每个子串,求出 母串中 所有该子串 的 开始和结束位置,保存在 mark数组中,求完所有子串后,对mark数组按 结束位置排序,然后 用后一个的结束位置 减去 前一个的 开始 位置 再 减去 1,记录最大值,
Problem 2128 最长子串
Accept: 50 Submit: 198
Time Limit: 3000 mSec Memory Limit : 65536 KB
Problem Description
问题很简单,给你一个字符串s,问s的子串中不包含s1,s2...sn的最长串有多长。
Input
输入包含多组数据。第一行为字符串s,字符串s的长度1到10^6次方,第二行是字符串s不能包含的子串个数n,n<=1000。接下来n行字符串,长度不大于100。
字符串由小写的英文字符组成。
Output
最长子串的长度
Sample Input
lgcstraightlalongahisnstreet5strlongtreebigintegerellipse
Sample Output
12
3、代码:
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define N 1000005char str[N];char sub[105];int cnt;struct node{ int start; int end;}a[N];int cmp(node a,node b){ return a.end<b.end;}void solve(char s1[N],char s2[105])//s1原串,s2子串{ int idx=0; int len=strlen(s2); while(strstr(s1+idx,s2)!=NULL) { int s=strstr(s1+idx,s2)-s1; a[cnt].start=s; a[cnt].end=s+len-1; idx=a[cnt].end; cnt++; }}int main(){ int n; while(scanf("%s",str)!=EOF) { scanf("%d",&n); cnt=0; int l=strlen(str); for(int i=0;i<n;i++) { scanf("%s",sub); solve(str,sub); } a[cnt].start=l; a[cnt].end=l; cnt++; sort(a,a+cnt,cmp); int ans=-1; for(int i=0;i<cnt-1;i++) { int tmp=a[i+1].end-a[i].start-1; if(tmp>ans) ans=tmp; } if(ans==-1) printf("%d\n",l); else printf("%d\n",ans); } return 0;}/*lgcstraightlalongahisnstreet5strlongtreebigintegerellipse*/
- fzu Problem 2128 最长子串 (注意strstr函数的使用)
- fzu Problem 2128 最长子串
- fzu Problem 2128 最长子串
- fzu Problem 2128 最长子串
- FZUOJ-2128 最长子串(strstr函数枚举暴力)
- 【FZU】Problem 1411 最长配对子串
- FZU 2128 最长子串
- fzu 2128 最长子串
- 福州大学第十届校赛 & fzu 2128最长子串
- Problem 2128 最长子串 (KMP+字符串 好题)
- 子串查询函数strstr
- strstr() 函数的使用
- strstr函数的使用
- 找最长公共子串的函数
- 编程实现strstr子串函数
- fuzhuo------ Problem 1411 最长配对子串
- leetcode Problem 5 最长子回文串
- 写正确函数需要注意的地方:最长递减子序列
- Lucene学习总结之三:Lucene的索引文件格式(1)
- Java Precondition类
- 四元数与欧拉角间的转换(源代码)
- OPENFIRE+MYSQL5.6安装中遇见Specified key was too long; max key length is 767 bytes openfire处理办法
- 第十周上机实践------乘法口诀
- fzu Problem 2128 最长子串 (注意strstr函数的使用)
- connect函数返回值
- shell 十三问:
- PHP 与 Mysql 视频教程
- 19:46这刻
- Java多线程编程详解
- Android和PHP开发最佳实践
- linux 防火墙设置、selinux禁用
- IT圈子里有个圈子—程序员