简单题解 NOI / 1.7编程基础之字符串 - 30 字符串环

字符串刷题篇1:字符环 openjuge 字符环: 有两个由字符构成的环。请写一个程序,计算这两个字符环上最长连续公共字符串的长度。例如,字符串“ABCEFAGADEGKABUVKLM”的首尾连在一起,构成一个环;字符串“MADJKLUVKL”的首尾连在一起,构成一个另一个环;“UVKLMA”是这两个环的一个连续公共字符串。 输入 一行,包含两个字符串,分别对应一个字符环。这两个字符串之间用单个空格分开。字符串长度不超过255,且不包含空... 阅读详情

题目:


描述

    有两个由字符构成的环。请写一个程序,计算这两个字符环上最长连续公共字符串的长度。例如,字符串“ABCEFAGADEGKABUVKLM”的首尾连在一起,构成一个环;字符串“MADJKLUVKL”的首尾连在一起,构成一个另一个环;“UVKLMA”是这两个环的一个连续公共字符串。
输入
    一行,包含两个字符串,分别对应一个字符环。这两个字符串之间用单个空格分开。字符串长度不超过255,且不包含空格等空白符。
输出
    输出一个整数,表示这两个字符环上最长公共字符串的长度。
样例输入

    ABCEFAGADEGKABUVKLM MADJKLUVKL

样例输出

    6

题解:

#include <iostream>
#include <cmath>
#include <cstring>
using namespace std;
int main(){
	string str1;
	string str2;
	cin >> str1 >> str2;
	int len1 = str1.size();
	int len2 = str2.size();
	//最长公共子串不能超过的长度 
	int len = min(len1,len2);
	//新建一个两倍长度的字符串,相当于一个环
	string nstr1 = str1+str1;
	string nstr2 = str2+str2;
	int ans = 0;
	for(int i=0;i<len1;i++){
		for(int j=0;j<len2;j++){
			int t = 0;
			//t==len时就不需要这两个环比较了
			while(nstr1[i+t]==nstr2[j+t]&&t<len){
				t++;
			}
			//一轮比较结束后 
			ans = max(ans,t);
		}
	}
	cout<<ans<<endl;
}

思路:

跟字符串的匹配有点相似,但是有些区别。都是两层遍历,但是这里的匹配是用环做匹配,两个字符换匹配只需要到最长公共子串即可(也就是更短的那个字符串的长度),然后我们一轮匹配结束之后就更新一些ans。

C++实现环形队列的基本操作(十进制小数转换) 领会环形队列存储结构和掌握环形队列中的各种基本运算算法设计。编写一个程序,实现环形队列(假设栈中元素类型ElemType 为char)的各种基本运算,并在此基础上完成以下功能 阅读详情

相关推荐

noi题库 1.7编程基础之字符串 :题解大礼包20180723

题目传送门 以下是对1.7编程基础之字符串的全部题解,有需要的同学请自行学习。有任何错漏或者疑问,请留言。谢谢~~~ 1、题目分析 1.7编程基础之字符串 编号 题目 相对难度1-5 知识点 1 统计数字字符个数 2 数字字符+桶 2 找第一个只出现一次的字符 2 桶 3 基因相关性 2 字符匹配 4...

liusu201601的博客 1万+

#152: 有两个由字符构成的环。请写一个程序,计算这两个字符环上最长连续公共字符串的长度。...

试题描述 有两个由字符构成的环。请写一个程序,计算这两个字符环上最长连续公共字符串的长度。例如,字符串“ABCEFAGADEGKABUVKLM”的首尾连在一起,构成一个环;字符串“MADJKLUVKL”的首尾连在一起,构成一个另一个环;“UVKLMA”是这两个环的一个连续公共字符串。 输入格式 一行,包含两个字符串,分别对应一个字符环。这两个字符串之间用单个空格...

aooubei7175的博客 3627

noi题库 1.5编程基础之循环控制 :题解大礼包20180720

题目传送门 1.5编程基础之循环控制 的全部题解,有需要的同学请自行学习。有任何错漏或者疑问,请留言。谢谢~~~ 1、题目分析 2、代码截图 1.5编程基础之循环控制 编号 题目 相对难度1-5 知识点 1 求平均年龄 2 均值 2 财务管理 2 均值 3 均值 2 均值 4 求整数的和与均...

liusu201601的博客 1万+

字符环c++

不会的来看吧

wangminghao12345的博客 920

NOI/ 1.7编程基础之字符串(题库)

题目ID 标题 分数 尝试人数 01 统计数字字符个数 10 23655 02 找第一个只出现一次的字符 10 19481 03 基因相关性 10 15709 04 石头剪子布 10 14165 05 输出亲朋字符串 10 12807 06 合法 C 标识符 ...

Owen20071026的博客 3008

NOI1.8.25 螺旋加密 题解(C++)

NOI1.8.25 螺旋加密 题解(C++) 这题太坑了吧,给大家看一下我的提交记录: 这是我两个月前刷的这一题。写第7次的时候才对啊。。。 直接上题目吧: 题目 总Time Limit: 1000ms Memory Limit: 65536kB Description Chip和Dale发明了一种文本信息加密技术。他们事先秘密约定好矩阵的行数和列数。接着,将字符按如下方式编码: 1 . 所有...

jerry20183的博客 997

【OpenJudge NOI】题解目录

【OpenJudge NOI】题解目录 OJ链接:OpenJudge NOI 以下为本人做的OJ题解 针对每一道题我都会给出题目考点、解题思路、题解代码。必要时也会给出不同的解题方法。 本人水平有限,如有不足之处,欢迎大家指正。如看过后还有不明白的地方,欢迎在评论区留言。 作者:君义_noip 1.1编程基础之输入输 1 Hello, World!:点击这里 2 输出第二个整数:点击这里 3 对齐输出:点击这里 4 输出保留3位小数的浮点数:点击这里 5 输出保留12位小数的浮点数:点击这里 6 空格分隔输

君义NOIP的博客 7万+

华为OD机试C++ - 字符成环找偶数O

给你一个字符串s,字符串s首尾相连成一个环形,请你在环中找出’o’字符出现了偶数次最长子字符串的长度。

steven_my的博客 217

NOI1.7.19字符串移位包含问题 题解(C++)

NOI1.7.19字符串移位包含问题 题解(C++) 今天的这一道题非常的简(可)单(怕),作者在题目中已经错了七八回了,我太难了 请听题: 19:字符串移位包含问题 总时间限制: 1000ms 内存限制: 65536kB 描述 对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。 给定两个字符串s1和s2,要求判定其中一个字符串是否是另一字符串通过若干次循...

jerry20183的博客 1266

题解:洛谷 P2114 [NOI2014] 起床困难综合症

21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳。通过研究相关文献,他找到了该病的发病原因:在深邃的太平洋海底中,出现了一条名为 drd 的巨龙,它掌握着睡眠之精髓,能随意延长大家的睡眠时间。drd 有着十分特殊的技能,他的防御战线能够使用一定的运算来改变他受到的伤害。具体说来,drd 的防御战线由 n 扇防御门组成。为了节省体力,他希望通过选择合适的初始攻击力使得他的攻击能让 drd 受到最大的伤害,请你帮他计算一下,他的一次攻击最多能使 drd 受到多少伤害。

团爸讲算法 170

S32DS3.5图形化配置实战:从零构建S32K144通信接口工程

本文详细介绍了如何使用S32DS3.5图形化配置工具从零构建S32K144通信接口工程。通过实战演示引脚配置、时钟树设置、SPI接口搭建等关键步骤,帮助开发者快速掌握NXP S32K系列开发技巧,提升嵌入式开发效率。特别针对S32DS3.5版本的新特性进行了深度解析,包括智能代码生成和调试优化方法。

weixin_26834815的博客 200

OpenJudge超详细题解,动画图文题解

内容来源于微信公众号:大神编程。已经过原文作者授权。 更新时间:2020-7-5 因为OpenJudge题库和一本通题库很多题都是一样,所以很多链接都是直接使用一本通的题解,完全不影响。 为什么要转载: 动画、图文结合。 我看了部分文章,一些我觉得很简单的题,但从中学到了以前没有学过的知识点和细节,重点是从中学习别人思维方式。 让更多的同学能学到更多的知识。 官方的QQ群:893157498 这是我建的QQ群:795233394 欢迎各位志同道合的同学们^_^ 已更新的题目颜色是蓝色,点击相

3万+

ChromeOS安装教程

ChromeOS,是基于Linux内核研发的ChromiumOS开源系统的闭源系统,最大的特色就是内置了Chrome浏览器,早期主要以Web云端应用程序为主,后来逐渐引入了Android子系统和Linux子系统。本文主要简述摸索的家用笔记本安装ChromeOS安装方法,供各位玩机朋友参考。

weixin_45751495的博客 8113

OpenJudge NOI 1.7 30:字符环

【题目链接】 OpenJudge NOI 1.7 30:字符环 【题目考点】 1. 字符串 2. 环形数组遍历 环形数组元素个数为n,下标为0~n-1,在环形数组中下标i取下一个位置的方法:i = (i + 1) % n 环形数组中下标i后第j个位置的下标为:(i + j) % n 3. 环形数组转一维数组 一个环形数组有n个元素。如想遍历该环形数组,同时取一段子数组做某种运算,而该子数组的长度小于等于2n,那么就可以将该环形数组变为一个长为2n的一维数组,将环形数组中的元素在一维数组上排列两遍,而后在该一

君义NOIP的博客 1872

Matlab实战:3种雷达间歇采样干扰的仿真与识别(附完整代码)

本文通过Matlab实战,详细仿真了雷达有源间歇采样干扰的三种核心样式:直接转发、重复转发和循环转发干扰。文章提供了完整的代码实现,并深入探讨了基于时频分析和循环平稳分析的特征提取与识别方法,为雷达抗干扰技术的学习与实践提供了清晰的工程实现路径。

weixin_29053695的博客 364

智能汽车竞赛摄像头处理(4)——摄像头循迹思路讲解

智能汽车竞赛摄像头处理(4)对摄像头循迹思路进行讲解。

weixin_62261692的博客 7057

NOI1999经典题解:01字符串计数与动态规划应用

动态规划是解决组合计数问题的核心方法,通过状态转移方程将复杂问题分解为子问题。在字符串处理领域,特别是01串相关题目中,动态规划能有效处理约束条件下的计数需求。本文以NOI竞赛经典题目为例,详解如何建立递推关系处理'连续k个字符至少含1'的约束条件,展示从数学建模到C++实现的完整过程。通过滚动数组等优化技巧,算法时间复杂度优化至O(n),适用于信奥赛和力扣等编程竞赛场景。文中涉及的字符串遍历技巧和组合数学思维,对解决力扣920等同类问题具有普适参考价值。

weixin_34232744的博客 315

基于单片机电能质量检测仪设计

*单片机设计介绍,基于单片机电能质量检测仪设计。

2201_75940997的博客 1205

【NOI2005】 智慧珠游戏

题目描述 智慧珠游戏 【问题描述】 智慧珠游戏拼盘由一个三角形盘件和 12 个形态各异的零件组成。拼盘的盘 件如图 1 所示: 图1 12 个零件按珠子数分 3 大类: 第 1 大类,有三个珠子,只有一种形状。 符号为 A,形状为 第 2 大类,有 4 个珠子,有 3 种形状。 符号为 B,形状为 符号为 C,形状为 符号为 D,形状为 第 3 大类,有...

985

FANUC机器人_CRX协作机器人的开机和示教器的初始化设置基本步骤(二)

FANUC机器人_CRX协作机器人的开机和示教器的初始化设置基本步骤

Robot_PLC_HMI_Automation 2732

R语言中5种正态性检验的方法

统计学中的t检验和方差分析等方法的应用条件是样本都来自正态总体或近似正态总体,只有符合这个条件,才能用这些方法来检验各样本所属的总体参数的差异显著性。文本向大家介绍在R语言中检验正态性的几种方法: 1、Kolmogorov-Smirnov检验 K-S检验检验单一样本是否来自某一特定分布。比如检验一组数据是否为正态分布。它的检验方法是以样本数据的累积频数分布与特定理论分布比较,若两者间的差距很小,则推论该样本取自某特定分布族。K-S检验的原假设和备择假设为: H0:样本所来自的总体分布服从

Mrrunsen的博客 2万+

【bzoj3670】[Noi2014]动物园

3670: [Noi2014]动物园 Time Limit:10 SecMemory Limit:512 MBSubmit:2080Solved:1107[Submit][Status][Discuss] Description 近日,园长发现动物园中好吃懒做的动物越来越多了。例如企鹅,只会卖萌向游客要吃的。为了整治动物园的不良风气,让动物们凭自己的真才实学...

anzhi7214的博客 111

基于simulink构建一个完整的航空航天器姿态控制与导航仿真模型

航空航天器的姿态控制与导航系统是确保飞行器稳定运行和精确执行任务的核心技术。其目标是通过传感器获取飞行器的状态信息,并利用控制器调整飞行器的姿态,使其按照预定轨迹飞行。基于MATLAB/Simulink平台进行航空航天器姿态控制与导航系统的建模与仿真,可以帮助研究者验证算法性能并优化系统的动态响应。本项目旨在构建一个完整的航空航天器姿态控制与导航仿真模型,包括飞行器动力学建模、传感器模块设计、控制器实现以及导航算法仿真,并通过仿真分析其性能。

xiaoheshang_123的博客 272

NOI2020训练日志

摸鱼日记

一位蒟蒻的小博客 1359

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

[NOI2017]蚯蚓排队 题解

题目就是要求我们能够支持三个操作: 1.把两个字符串合并 2.把两个字符串分裂 3.询问有多少一些个串是这么多串中出现了多少次 我们发现数据范围中的K很小,于是我们就考虑k与什么有关,也就是 我们发现第3中操作可以通过哈希表解决,(显而易见的吧) 那怎么维护哈希表? 我们思考,两个字符串a,ba,ba,b合并会增加哪些哈希值? 其实就是那些即有aaa的部分又有bbb部分的子串。 这样的串 ...

Hacheylight 446

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

NOI2018网络同步赛游记

第一次参加NOI系列比赛,小激动虽然我是个菜鸡。 day1【2018.7.18】 今天早上7点吃完饭,我就来到机房,看了看邮件里的密码条,然后就坐等8:30~~ 等到8:30,CCF的网站真的是‘快’,网页日期08年?. 最后都没登上,在群里下载的题面和样例。 T1 return 这个题还是比较简单的啦,分段写程序,离线nlognnlognnlogn,就可暴力80分,开始准备打可...

TimeTraveller-VictoryCzt 1777

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: 简单理解 NOIOJ--1822 古代密码 附ac代码
下一篇: 简单理解 NOI / 1.10编程基础之简单排序 附ac题解
unomit
博客等级 码龄7年 30粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值