26:字符串最大跨距

总时间限制: 
1000ms

内存限制: 
65536kB
描述

有三个字符串S,S1,S2,其中,S长度不超过300,S1和S2的长度不超过10。想检测S1和S2是否同时在S中出现,且S1位于S2的左边,并在S中互不交叉(即,S1的右边界点在S2的左边界点的左侧)。计算满足上述条件的最大跨距(即,最大间隔距离:最右边的S2的起始点与最左边的S1的终止点之间的字符数目)。如果没有满足条件的S1,S2存在,则输出-1。

例如,S = "abcd123ab888efghij45ef67kl", S1="ab", S2="ef",其中,S1在S中出现了2次,S2也在S中出现了2次,最大跨距为:18。

输入
三个串:S1, S2, S3,其间以逗号间隔(注意,S1, S2, S3中均不含逗号和空格);
输出
S1和S2在S最大跨距;若在S中没有满足条件的S1和S2,则输出-1。
样例输入
abcd123ab888efghij45ef67kl,ab,ef
样例输出
18

思路:

  水题大模拟;

来,上代码:

#include<cstdio>
#include<string>
#include<cstring>
#include<iostream>
#include<algorithm> using namespace std; int len,now=,len_3[],cur=,ans_l=-,ans_r=-; char word[],word_1[][]; int main()
{
gets(word);
len=strlen(word);
for(int i=;i<len;i++)
{
if(word[i]==',')
{
len_3[now]=cur;
now++;
cur=;
continue;
}
word_1[now][cur++]=word[i];
}
len_3[now]=cur;
for(int i=;i<len_3[];i++)
{
if(word_1[][i]==word_1[][])
{
bool if_ok=true;
for(int j=i;j<=i+len_3[]-;j++)
{
if(word_1[][j]==word_1[][j-i]) continue;
if_ok=false;
break;
}
if(if_ok)
{
ans_r=i+len_3[]-;
break;
}
}
}
for(int i=len_3[]-;i>=len_3[]-;i--)
{
if(word_1[][i]==word_1[][len_3[]-])
{
bool if_ok=true;
for(int j=i;j>=i-len_3[]+;j--)
{
if(word_1[][j]==word_1[][len_3[]+j-i-]) continue;
if_ok=false;
break;
}
if(if_ok)
{
ans_l=i-len_3[]+;
break;
}
}
}
if(ans_l==-||ans_r==-||ans_l<=ans_r)
{
printf("-1\n");
}
else
{
printf("%d\n",ans_l-ans_r-);
}
return ;
}

AC日记——字符串最大跨距 openjudge 1.7 26的更多相关文章

  1. AC日记——字符串的展开 openjudge 1.7 35

    35:字符串的展开 总时间限制:  1000ms 内存限制:  65536kB 描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h ...

  2. AC日记——字符串判等 openjudge 1.7 17

    17:字符串判等 总时间限制:  1000ms 内存限制:   65536kB 描述 判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等. 输入 两行,每行包含一个字符串. 输出 ...

  3. AC日记——字符串P型编码 openjudge 1.7 31

    31:字符串p型编码 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个完全由数字字符('0','1','2',…,'9')构成的字符串str,请写出str的p型编码串.例如: ...

  4. AC日记——逆波兰表达式 openjudge 3.3 1696

    1696:逆波兰表达式 总时间限制:  1000ms 内存限制:  65536kB 描述 逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3.逆波兰表达式 ...

  5. AC日记——统计单词数 openjudge 1.12 5

    05:统计单词数 总时间限制:  1000ms 内存限制:  65536kB 描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次 ...

  6. AC日记——回文子串 openjudge 1.7 34

    34:回文子串 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个字符串,输出所有长度至少为2的回文子串. 回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abb ...

  7. AC日记——字符串位移包含问题 1.7 19

    19:字符串移位包含问题 总时间限制:  1000ms 内存限制:   65536kB 描述 对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串. 给定两个字符串 ...

  8. AC日记——验证字串 openjudge 1.7 18

    18:验证子串 总时间限制:  1000ms 内存限制:   65536kB 描述 输入两个字符串,验证其中一个串是否为另一个串的子串. 输入 输入两个字符串, 每个字符串占一行,长度不超过200且不 ...

  9. AC日记——大小写字母互换 openjudge 1.7 14

    14:大小写字母互换 总时间限制:  1000ms 内存限制:  65536kB 描述 把一个字符串中所有出现的大写字母都替换成小写字母,同时把小写字母替换成大写字母. 输入 输入一行:待互换的字符串 ...

随机推荐

  1. 【javascript激增的思考04】MVC与Backbone.js(beta)

    前言 最近整理了很多前端面试题的东西,今天又去参加了一次面试,不知各位烦不烦,我反正有点累了,于是我们今天继续回到我们前段时间研究的问题,我们再来看看MVC吧. 什么是MVC 又回到这个问题了,到底什 ...

  2. win7系统下,vs2010一调式,vs就关闭要重启

    进入我的文档 %appdata%\Microsoft\VisualStudio, 将 10.0 重命名.网上找的方法有些问题,可能找这路径很难找到啊. 于是自己 找了找 一般都在当前用户文件夹下 Ap ...

  3. webbench 压力测试

    原文 webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好用,安装使用也特别方便,并且非常小. 主要是 -t 参数用着比较爽,下面参考了张宴 ...

  4. 属性观察器willSet与didSet

    willSet与didSet是swift特有的,就是监听属性值的变化,但有一个小注意点. willSet与didSet调用时机:对象创建后的第一次赋值时开始调用.也就是说,初始化时(包含重载的init ...

  5. run() 和 start() 的区别

    1) start: 用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面(指主线程下面)的代码.通过调用Thread类的start()方法来启动一个 ...

  6. 委托 C#

    这些就是自己的理解. 委托的用处就是把方法传递给其他方法. 1委托的使用更类差不多,也 是需要先定义再实例化. 2Action<T>和Func<T>委托 3多播委托 4.匿名方 ...

  7. 用GCD线程组与GCD信号量将异步线程转换为同步线程

    有时候我们会碰到这样子的一种情形: 同时获取两个网络请求的数据,但是网络请求是异步的,我们需要获取到两个网络请求的数据之后才能够进行下一步的操作,这个时候,就是线程组与信号量的用武之地了. #impo ...

  8. .NET读写Excel工具Spire.XlS使用(DataExport )

    Introduction E-ICEBLUE is developing office.net component, the main products include Spire.Doc, Spir ...

  9. T-SQL基础--TOP

    理解TOP子句 众所周知,TOP子句可以通过控制返回行的数量来影响查询. 我们知道TOP子句能很容易的满足返回指定行数的子集,接下来有一些例子来展示什么情况下使用TOP子句来返回一个结果集: 你打算返 ...

  10. 常用的js跳转页面方法实现汇总

    1.window.location.href方式 <script language="javascript" type="text/javascript" ...