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 描述 把一个字符串中所有出现的大写字母都替换成小写字母,同时把小写字母替换成大写字母. 输入 输入一行:待互换的字符串 ...
随机推荐
- [deviceone开发]-do_SlideListView的简单示例
一.简介 利用提供的SlideListVIew实现那种cell可以滑动露出底部按钮的功能 主要组件:do_slidelistview 二.效果图 三.相关讨论 http://bbs.deviceone ...
- sql2008“备份集中的数据库备份与现有的xxx数据库不同”解决方法
因为是在另一台电脑对同名数据库做的备份,用常规方法还原,提示不是相同数据库,不让还原,在网上找到下面的方法解决了: 一.打开sql企业管理器,新建查询 执行以下SQL代码: RESTORE DATAB ...
- Autodesk hackathon 技术参考资料
Autodesk 首届黑客马拉松(hackathon )将于6月14号在上海举行,在这次活动中,推荐您使用的技术有ReCap 360 photo照片建模技术和Autodesk 360 viewer通用 ...
- Failed to apply plugin [id 'com.android.application'] 和 Could not find com.android.tools.build:gradle:2.XX的最正确的解决方法
发现android studio是真的可爱啊,上一秒还没问题可以build运行,下一秒就出错...好,你任性,你牛逼.. 说下今天又遇到的两个问题:Failed to apply plugin [id ...
- iOS 设置系统屏幕亮度
// 设置系统屏幕亮度 // [UIScreen mainScreen].brightness = value; // 或者 [[UIScreen mainScreen] se ...
- 你真的了解UIWindow吗?
一:首先查看一下关于UIWindow的定义 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIWindow : UIView //window的屏幕,默认是 [UISc ...
- objective-c系列-NSMutableArray
******************************************** // 可变数组构造方法 // 下边两句的定义都是不可变的 // NSMutableArray *mar ...
- Android 6.0 运行时权限处理
在运行时请求权限 从Android 6.0(API级别23)开始,用户权限授予应用程序在应用程序运行时,当他们安装程序.这种方法简化了应用程序的安装过程,因为用户不需要安装或更新应用程序时授予权限.这 ...
- SSH 框架
SSH是 struts+spring+hibernate的一个集成框架,是目前较流行的一种web应用程序开源框架.是把多个框架(Struts.Spring以及Hibernate)紧密的结合在一起,用于 ...
- Sqlite学习笔记(三)&&WAL性能测试
WAL是SQLite3.7.0版本引入的一个重大改进.SQLite官网宣称在很多使用场景下,WAL模型的性能都要好于默认的DELETE模式.下面将针对几个主要场景对WAL性能做测试,测试的硬件与xxx ...