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. 1.7 编程基础之字符串 30 字符环 python

    http://noi.openjudge.cn/ch0107/30/ """ 1.7 编程基础之字符串 30 字符环 http://noi.openjudge.cn/ch ...

  2. OpenJudge NOI 1.7 30:字符环

    [题目链接] OpenJudge NOI 1.7 30:字符环 [题目考点] 1. 字符串 2. 环形数组遍历 环形数组元素个数为n,下标为0~n-1,在环形数组中下标i取下一个位置的方法:i = ( ...

  3. 字符环 2021.02.26

    题目描述 有两个由字符构成的环.请写一个程序,计算这两个字符环上最长连续公共字符串的长度.例如,字符串"ABCEFAGADEGKABUVKLM"的首尾连在一起,构成一个环:字符串& ...

  4. 正则的实例用法,删除包含某些字符的字符串

    a=re.findall('[a-z]system[a-z]', ': Control_7_ CodeSystem: GroupCodeSystem: IdSystem:'.lower()) re.s ...

  5. MySQL 学习笔记(12)— 数据类型(定长字符、变长字符、字符串大对象、数字类型、日期时间类型、二进制类型)

    MySQL 常见的数据类型有字符串类型.数字类型.时间类型.二进制类型.具体的分类如下图: 1. 字符串类型 字符串类型用于存储字符和字符串数据,主要包含三种具体的类型:定长字符串.变长字符串以及字符 ...

  6. java.sql.Exception:setString 只能处理少于 32766 个字符的字符串

    java.sql.Exception:setString 只能处理少于 32766 个字符的字符串 解决方式是 : 升级ojdbc的版本,   将原来的 ojdbc14_10.2.0.2.0.jar ...

  7. 《C#精彩实例教程》小组阅读07 -- C#字符与字符串

    本微信图文详细介绍了C#中的字符与字符串.

  8. pandas使用pad函数向dataframe特定数据列的每个字符串添加补齐字符或者字符串、向所有字符串的左右两侧填充、直到宽度达到指定要求(both padding)

    pandas使用pad函数向dataframe特定数据列的每个字符串添加补齐字符或者字符串.向所有字符串的左右两侧填充.直到宽度达到指定要求(both padding) 目录

  9. pandas使用pad函数向dataframe特定数据列的每个字符串添加前置(前缀)补齐字符或者字符串、向所有字符串的左侧填充、直到宽度达到指定要求(left padding)

    pandas使用pad函数向dataframe特定数据列的每个字符串添加前置(前缀)补齐字符或者字符串.向所有字符串的左侧填充.直到宽度达到指定要求(left padding) 目录

最新文章

  1. 函数的返回值可以不用赋值_C语言学习|函数的应用《一》
  2. mysql 5.7.13 安装配置方法图文教程(linux)
  3. express与express-art-template两者相结合使用方法
  4. 视觉SLAM十四讲学习笔记专栏汇总
  5. Kafka : 查看kafka topic的消息offset范围
  6. linux audio(alsa)驱动注册的简明流程.
  7. 283.判断二分图(力扣leetcode) 博主可答疑该问题
  8. pycharm2019安装包以及汉化文件
  9. java 开源客服系统_一个开源的智能客服系统
  10. 用逻辑门设计一个CPU
  11. rm mysql 数据日志文件恢复
  12. 世嘉MD游戏开发【十】:精灵动画,Sprite Animation
  13. 输出三角形字符阵列图形(C语言)
  14. [随想感悟] 申论到底是什么 写好申论的要点
  15. 关于Pearson相关性系数、Cosine相似度、欧式距离
  16. servicecontroller 无法打开计算机 服务,ServiceController似乎无法停止服务
  17. 自定义下拉回弹View-掌握View冲突处理
  18. 火焰图(FlameGraph)的使用
  19. ac3音频 机顶盒播放音量变小问题
  20. 6步骤实现CentOS系统环境精简优化

热门文章

  1. 限制滥用举报功能的小建议
  2. vba里使用python自定义函数(xlwings)
  3. linux中.开头的变量,linux中的变量
  4. Clion配置Ros环境
  5. CDH报错: 主机的 NTP 服务未同步至任何远程服务器
  6. ssh - 安全外壳协议的详解,为什么使用它
  7. eureka默认端口号是多少_从eureka报错中得知的默认配置
  8. 剑指offer面试题53 - II. 0~n-1中缺失的数字(二分查找)
  9. TensorFlow安装教程(Windows/Linux两种版本)
  10. u-boot之添加一块新板子的支持