Bailian3754 字符环【字符串】
3754:字符环
总时间限制: 1000ms 内存限制: 65536kB
描述
有两个由字符构成的环。请写一个程序,计算这两个字符环上最长连续公共字符串的长度。例如,字符串“ABCEFAGADEGKABUVKLM”的首尾连在一起,构成一个环;字符串“MADJKLUVKL”的首尾连在一起,构成一个另一个环;“UVKLMA”是这两个环的一个连续公共字符串。
输入
一行,包含两个字符串,分别对应一个字符环。这两个字符串之间用单个空格分开。字符串长度不超过255,且不包含空格等空白符。
输出
输出一个整数,表示这两个字符环上最长公共字符串的长度。
样例输入
ABCEFAGADEGKABUVKLM MADJKLUVKL
样例输出
6
问题链接:Bailian3754 字符环
问题简述:(略)
问题分析:字符串处理问题,暴力匹配一下,求个最值。循环字符串,使用模除运算来实现。题解分别用C语言和C++语言写了2个版本。如果想加快速度,则需要用基于KMP算法来实现,需要考虑一下字符环。
程序说明:(略)
参考链接:(略)
题记:(略)
AC的C++语言程序如下:
/* Bailian3754 字符环 */#include <bits/stdc++.h>using namespace std;int main()
{int ans = 0;string s1, s2;cin >> s1 >> s2;int len1 = s1.length();int len2 = s2.length();int minlen = min(len1, len2);for(int i = 0; i < len1; i++)for(int j = 0; j < len2; j++) {int k1 = i, k2 = j, cnt = 0;while(s1[k1] == s2[k2]) {cnt++;k1 = (k1 + 1) % len1;k2 = (k2 + 1) % len2;if(cnt >= minlen) break;}ans = max(ans, cnt);}cout << ans << endl;return 0;
}
AC的C语言程序如下:
/* Bailian3754 字符环 */#include <stdio.h>
#include <string.h>#define N 255
char s1[N + 1], s2[N + 1];int main()
{int ans = 0;scanf("%s%s", s1, s2);int len1 = strlen(s1);int len2 = strlen(s2);int minlen, i, j;if(len1 < len2) minlen = len1;else minlen = len2;for(i = 0; i < len1; i++)for(j = 0; j < len2; j++) {int k1 = i, k2 = j, cnt = 0;while(s1[k1] == s2[k2]) {cnt++;k1 = (k1 + 1) % len1;k2 = (k2 + 1) % len2;if(cnt >= minlen) break;}if(cnt > ans) ans = cnt;}printf("%d\n", ans);return 0;
}
Bailian3754 字符环【字符串】相关推荐
- 1.7 编程基础之字符串 30 字符环 python
http://noi.openjudge.cn/ch0107/30/ """ 1.7 编程基础之字符串 30 字符环 http://noi.openjudge.cn/ch ...
- OpenJudge NOI 1.7 30:字符环
[题目链接] OpenJudge NOI 1.7 30:字符环 [题目考点] 1. 字符串 2. 环形数组遍历 环形数组元素个数为n,下标为0~n-1,在环形数组中下标i取下一个位置的方法:i = ( ...
- 字符环 2021.02.26
题目描述 有两个由字符构成的环.请写一个程序,计算这两个字符环上最长连续公共字符串的长度.例如,字符串"ABCEFAGADEGKABUVKLM"的首尾连在一起,构成一个环:字符串& ...
- 正则的实例用法,删除包含某些字符的字符串
a=re.findall('[a-z]system[a-z]', ': Control_7_ CodeSystem: GroupCodeSystem: IdSystem:'.lower()) re.s ...
- MySQL 学习笔记(12)— 数据类型(定长字符、变长字符、字符串大对象、数字类型、日期时间类型、二进制类型)
MySQL 常见的数据类型有字符串类型.数字类型.时间类型.二进制类型.具体的分类如下图: 1. 字符串类型 字符串类型用于存储字符和字符串数据,主要包含三种具体的类型:定长字符串.变长字符串以及字符 ...
- java.sql.Exception:setString 只能处理少于 32766 个字符的字符串
java.sql.Exception:setString 只能处理少于 32766 个字符的字符串 解决方式是 : 升级ojdbc的版本, 将原来的 ojdbc14_10.2.0.2.0.jar ...
- 《C#精彩实例教程》小组阅读07 -- C#字符与字符串
本微信图文详细介绍了C#中的字符与字符串.
- pandas使用pad函数向dataframe特定数据列的每个字符串添加补齐字符或者字符串、向所有字符串的左右两侧填充、直到宽度达到指定要求(both padding)
pandas使用pad函数向dataframe特定数据列的每个字符串添加补齐字符或者字符串.向所有字符串的左右两侧填充.直到宽度达到指定要求(both padding) 目录
- pandas使用pad函数向dataframe特定数据列的每个字符串添加前置(前缀)补齐字符或者字符串、向所有字符串的左侧填充、直到宽度达到指定要求(left padding)
pandas使用pad函数向dataframe特定数据列的每个字符串添加前置(前缀)补齐字符或者字符串.向所有字符串的左侧填充.直到宽度达到指定要求(left padding) 目录
最新文章
- 函数的返回值可以不用赋值_C语言学习|函数的应用《一》
- mysql 5.7.13 安装配置方法图文教程(linux)
- express与express-art-template两者相结合使用方法
- 视觉SLAM十四讲学习笔记专栏汇总
- Kafka : 查看kafka topic的消息offset范围
- linux audio(alsa)驱动注册的简明流程.
- 283.判断二分图(力扣leetcode) 博主可答疑该问题
- pycharm2019安装包以及汉化文件
- java 开源客服系统_一个开源的智能客服系统
- 用逻辑门设计一个CPU
- rm mysql 数据日志文件恢复
- 世嘉MD游戏开发【十】:精灵动画,Sprite Animation
- 输出三角形字符阵列图形(C语言)
- [随想感悟] 申论到底是什么 写好申论的要点
- 关于Pearson相关性系数、Cosine相似度、欧式距离
- servicecontroller 无法打开计算机 服务,ServiceController似乎无法停止服务
- 自定义下拉回弹View-掌握View冲突处理
- 火焰图(FlameGraph)的使用
- ac3音频 机顶盒播放音量变小问题
- 6步骤实现CentOS系统环境精简优化