AC日记——字符串最大跨距 openjudge 1.7 26
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的更多相关文章
- AC日记——字符串的展开 openjudge 1.7 35
35:字符串的展开 总时间限制: 1000ms 内存限制: 65536kB 描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h ...
- AC日记——字符串判等 openjudge 1.7 17
17:字符串判等 总时间限制: 1000ms 内存限制: 65536kB 描述 判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等. 输入 两行,每行包含一个字符串. 输出 ...
- AC日记——字符串P型编码 openjudge 1.7 31
31:字符串p型编码 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个完全由数字字符('0','1','2',…,'9')构成的字符串str,请写出str的p型编码串.例如: ...
- AC日记——逆波兰表达式 openjudge 3.3 1696
1696:逆波兰表达式 总时间限制: 1000ms 内存限制: 65536kB 描述 逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3.逆波兰表达式 ...
- AC日记——统计单词数 openjudge 1.12 5
05:统计单词数 总时间限制: 1000ms 内存限制: 65536kB 描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次 ...
- AC日记——回文子串 openjudge 1.7 34
34:回文子串 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个字符串,输出所有长度至少为2的回文子串. 回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abb ...
- AC日记——字符串位移包含问题 1.7 19
19:字符串移位包含问题 总时间限制: 1000ms 内存限制: 65536kB 描述 对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串. 给定两个字符串 ...
- AC日记——验证字串 openjudge 1.7 18
18:验证子串 总时间限制: 1000ms 内存限制: 65536kB 描述 输入两个字符串,验证其中一个串是否为另一个串的子串. 输入 输入两个字符串, 每个字符串占一行,长度不超过200且不 ...
- AC日记——大小写字母互换 openjudge 1.7 14
14:大小写字母互换 总时间限制: 1000ms 内存限制: 65536kB 描述 把一个字符串中所有出现的大写字母都替换成小写字母,同时把小写字母替换成大写字母. 输入 输入一行:待互换的字符串 ...
随机推荐
- DIV+CSS+JS基础+正则表达式
...............HTML系列.................... DIV元素是用来为HTML文档内大块(block-level)的内容提供结构和背景的元素.DIV的起始 ...
- VS 2015打开项目闪退,新建项目提示未将对象引用到实例
因为开发需要,要把开发工具换成visual studio2015,装完之后会有警告“js”安装的问题,打开VS也没有问题, 但是一打开项目就闪退,新建项目也不行,查看应用程序日志,报错提示如下: .N ...
- java使用动态代理来实现AOP(日志记录)
以下内容为原创,转载时请注明链接地址:http://www.cnblogs.com/tiantianbyconan/p/3336627.html AOP(面向方面)的思想,就是把项目共同的那部分功能分 ...
- NSURLSession从网络上下载资源,此程序下载的是视频
#import "ViewController.h" @interface ViewController ()<NSURLSessionDelegate, NSURLSess ...
- 发布一个java Servlet (静态发布)
Servlet 是sun开发的动态web资源 的技术 让 Servlet 能响应用户请求,必须将 Servlet 配置在 Web 应用中 如何将Servlet用Tomcat发布出去: 编译你的.jav ...
- 【工具相关】iOS-Reveal的使用
一,首先下载Reveal工具. Reveal的下载地址:http://revealapp.com/download. 下载界面如下图所示,选择Download Trail蓝色按钮可以进行下载: 二,新 ...
- iOS 9 使用HTTP的方法
问题 在ios 9中使用HTTP请求,Xcode就会抛出下面的Exception: App Transport Security has blocked a cleartext HTTP (http: ...
- java文件复制函数
在写代码中,经常会需要复制文件.这时候就可以把这些函数放到工具类里面. 下面是一个复制文件的函数: public class CopyFileUtil { private static String ...
- ajax async
$.post("index.php?app=default&act=ajaxBigImage", {goods_id: goods_id},function(data){$ ...
- 验证码做得不错,有.net 版本 https://captcha.com/
https://captcha.com/ https://captcha.com/demos/features/captcha-demo.aspx