[AcWing 778] 字符串最大跨距

点击查看代码
#include<iostream>
using namespace std;
string s, s1, s2;
int main()
{
char c;
while (cin >> c, c != ',') s += c;
while (cin >> c, c != ',') s1 += c;
cin >> s2;
if (s.size() < s1.size() || s.size() < s2.size()) puts("-1");
else {
int l = 0;
while (l + s1.size() <= s.size()) {
int k = 0;
for ( ; k < s1.size(); k ++) {
if (s[l + k] != s1[k]) break;
}
if (k == s1.size()) break;
l ++;
}
int r = s.size() - s2.size();
while (r >= 0) {
int k = 0;
for ( ; k < s2.size(); k ++) {
if (s[r + k] != s2[k]) break;
}
if (k == s2.size()) break;
r --;
}
l += s1.size() - 1;
if (l >= r) puts("-1");
else printf("%d\n", r - l - 1);
}
return 0;
}
- 不使用 find() 函数的情况下,匹配 s1 和 s2 需要用 l 和 r 枚举 s1 和 s2 起点的可能性,找到 s1 和 s2 的起点在 s 中的位置
- 枚举 s1 的起点 l 时,从 0 开始向后枚举,枚举 s2 的起点 r 时,从 s.size() - s2.size() 开始向前枚举
- 边界情况1:s 的长度比 s1 的长度或者 s2 的长度小,输出 "-1"
- 边界情况2:s1 的终点位置 l ( l += s1.size() - 1 把 l 移到了 s1 的终点位置 ) 大于等于 s2 的起点位置 r
[AcWing 778] 字符串最大跨距的更多相关文章
- AC日记——字符串最大跨距 openjudge 1.7 26
26:字符串最大跨距 总时间限制: 1000ms 内存限制: 65536kB 描述 有三个字符串S,S1,S2,其中,S长度不超过300,S1和S2的长度不超过10.想检测S1和S2是否同时在S中 ...
- OpenJudge计算概论-字符串最大跨距
/*====================================================================== 字符串最大跨距 总时间限制: 1000ms 内存限制: ...
- AcWing 841. 字符串哈希
//快速判断两次字符串是不是相等 #include<bits/stdc++.h> using namespace std ; typedef unsigned long long ULL; ...
- [AcWing 777] 字符串乘方
点击查看代码 #include<iostream> using namespace std; string str; int main() { while (cin >> st ...
- [AcWing 776] 字符串移位包含问题
点击查看代码 #include<iostream> #include<algorithm> using namespace std; string a, b; int main ...
- [AcWing 771] 字符串中最长的连续出现的字符
点击查看代码 #include<iostream> using namespace std; string str; int n; int main() { cin >> n; ...
- noi题库(noi.openjudge.cn) 1.7编程基础之字符串T21——T30
T21:单词替换 描述 输入一个字符串,以回车结束(字符串长度<=100).该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写.现需要将其中的某个单词替换成另一个单词,并输出替 ...
- NOI 1.7编程基础之字符串(35题)
01:统计数字字符个数 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一行字符,统计出其中数字字符的个数. 输入 一行字符串,总长度不超过255. 输出 ...
- acwing 835. Trie字符串统计
地址 https://www.acwing.com/problem/content/description/837/ 维护一个字符串集合,支持两种操作: “I x”向集合中插入一个字符串x: “Q ...
随机推荐
- 『现学现忘』Docker基础 — 35、实战:自定义CentOS镜像
目录 1.前提说明 2.编写Dockerfile文件 3.构建镜像 4.运行镜像 5.列出镜像的变更历史 1)目标:自定义镜像wokong_centos. 2)所用到的保留字指令: FROM:基础镜像 ...
- django关闭DEBUG,无法加载静态文件
环境是:Python3.7 Django2.2 出现的问题根本原因是:当我们在开发django应用时如果设置了 DEBUG = True,那么django便会自动帮我们对静态文件进行路由:但是当我们设 ...
- MySQL_fetch_array 和 MySQL_fetch_object 的区别是什么?
以下是 MySQL_fetch_array 和 MySQL_fetch_object 的区别: MySQL_fetch_array() – 将结果行作为关联数组或来自数据库的常规数组返回. MySQL ...
- 【AD】Altium Designer 原理图的绘制
原理图设置基础 原理图的设置 设置原理图图纸大小 在原理图的绘制过程中,各个元件的大小是不能调整的. 如果原理图纸张放不下,需要对图纸进行设置:设计->文档选项,右键->选项-> ...
- 告别尬聊,解锁秀场+社交新玩法(内含源码+Demo)
直播已成为用户的生活习惯之一 艾媒咨询数据显示:2021年直播用户规模达到6.35亿人,在线直播用户以年轻群体为主,24岁及以下用户占比49%,30岁以下用户接近8成. 众所周知,Z世代用户是一个社交 ...
- 两个echarts地图联动高亮区域
项目要求左右两张地图能够在鼠标悬浮的时候高亮部分联动,曾尝试了connect不好使,所以自己写了这段代码.代码思路为: 鼠标移入地图时,另一侧的地图根据鼠标悬浮获取到的区域name使该区域高亮: 鼠标 ...
- CSS - 定位属性position使用详解(static、relative、fixed、absolute)
position 属性介绍 (1)position 属性自 CSS2 起就有了,该属性规定元素的定位类型.所有主流浏览器都支持 position 属性. (2)position 的可选值有四个:sta ...
- 前端复制粘贴文字clipBoard.js的使用
1. vue 中的复制粘贴: <div class="mainTextItem" @click="copyTXTOne" id="copyOn ...
- Mybatis模糊查询结果为空的解决方案
写在前面 Mybatis使用模糊查询,查询结果为空的解决方案,我的代码是 select * from sp_user where 1=1 <if test="username!=nul ...
- 控制反转 IOC 理论推导
控制反转 IOC 理论推导 按照我们传统的开发,我们会先去 dao 层创建一个接口,在接口中定义方法. public interface UserDao { void getUser(); } 然后再 ...