字符串的最大最小表示法 模板
#include<iostream> #include<string> using namespace std; /* 用最小表示法求字符串S的最小字典序 返回字典序最小的串的首字母位置 */ int minstr(char s[]) {int len=strlen(s);int i=0,j=1;while(i<=len-1 && j<=len-1){int k=0;while(k<=len-1 && s[(i+k)%len]==s[(j+k)%len])k++;if(k>=len)break;if(s[(i+k)%len]>s[(j+k)%len])i=max(i+k+1,j+1);////此时s[i+1]到s[i+k]都不可能是最小字符串的开头,而且s[i+1]到s[j]也不可能是最小字符串的开头(s[i]开头的字符串与s[j]开头的字符串在比较,本身已经说明s[i]开头的字符串小于以s[i+1]开头到以s[j-1]开头的字符串了)elsej=max(j+k+1,i+1);//同上道理 }return min(i,j); } /* 用最大表示法求字符串S的最大字典序 返回字典序最大的串的首字母位置 */ int maxstr(char s[]) {int len=strlen(s);int i=0,j=1;while(i<=len-1 && j<=len-1){int k=0;while(k<=len-1 && s[(i+k)%len]==s[(j+k)%len])k++;if(k>=len)break;if(s[(i+k)%len]<s[(j+k)%len])i=max(i+k+1,j+1);elsej=max(j+k+1,i+1);}return min(i,j); } int main() {return 0; }
转载于:https://www.cnblogs.com/Blundering-Chen/p/4012574.html
字符串的最大最小表示法 模板相关推荐
- 字符串处理 —— 最大最小表示法
[概述] 最大最小表示法用于解决字符串的同构问题,其在复杂度为 O(n) 的时间内求出一个字符串的所有同构串中字典序最大(小)的串的起始位置. 应用: 给出 n 个循环字符串判断有多少不同字符串:逐个 ...
- 字符串循环同构的最小表示法(转)
循环字符串的最小表示法的问题可以这样描述: 对于一个字符串S,求S的循环的同构字符串S'中字典序最小的一个. 由于语言能力有限,还是用实际例子来解释比较容易: 设S=bcad,且S'是S的循环同构的串 ...
- BZOJ2176Strange string——最小表示法
题目描述 给定一个字符串S = {S1, S2, S3 - Sn}, 如果在串SS中, 子串T(|T| = n)为所有长度为n的SS的字串中最小的(字符串的比较), 则称T为"奇怪的字串&q ...
- 『最小表示法 Necklace』
最小表示法 这是一个简单的字符串算法,其解决的问题如下: 给定一个字符串\(S\),长度为\(n\),如果把它的最后一个字符不断放到最前面,会得到\(n\)个不同的字符串,那么我们称这\(n\)个字符 ...
- 最小表示法(转自CSDN xiaoc's home)
循环字符串的最小表示法的问题可以这样描述: 对于一个字符串S,求S的循环的同构字符串S'中字典序最小的一个. 由于语言能力有限,还是用实际例子来解释比较容易: 设S=bcad,且S'是S的循环同构的串 ...
- 几个冷门字符串算法的学习笔记(最小表示法,exKMP,Lyndon Word)
所有下标均从1开始 最小表示法 给定一个串,求字典序最小的循环同构. 我们把串复制一遍接在后面,然后求出[1,N][1,N][1,N]开始的长为NNN的子串中最小的 先设i=1,j=2i=1,j=2i ...
- 树的同构模板题(法1.最小表示法+法2.树哈希)
树的同构 problem solution code solution code problem 模板题 solution Ⅰ. 最小表示法 将树转化为 0/10/10/1 括号序列:从根开始 dfs ...
- BZOJ1398: Vijos1382寻找主人 Necklace 字符串最小表示法
Description 给定两个项链的表示,判断他们是否可能是一条项链. Input 输入文件只有两行,每行一个由0至9组成的字符串,描述一个项链的表示(保证项链的长度是相等的). Output 如果 ...
- zcmu1550(字符串最小表示法)
1550: AA Time Limit: 1 Sec Memory Limit: 128 MB Submit: 125 Solved: 35 [Submit][Status][Web Board] ...
最新文章
- spring aop原理_Spring知识点总结!已整理成142页离线文档(源码笔记+思维导图)...
- 数据挖掘 —— 无监督学习(关联)
- python os 文件操作 getcwd()方法
- HDU 2115 -I Love This Game
- HUST软工1506班第2周作业成绩公布
- 576. 出界的路径数
- Java防止用户同一时间重复登录(包括异地登录)
- 陶哲轩实分析习题8.5.1
- MyBatis源码分析(三):MyBatis初始化(配置文件读取和解析)
- 求反关系运算符:“服从分布”的符号表示 与 “不服从分布”的符号表示
- zookeeper 与dubbo管理平台Window 安装与使用
- 网吧技术员应聘问卷你能答多少
- vscode生成vue模板快捷键_vscode之快速生成vue模板
- ICP备案线下注销 网站域名备案注销
- BZOJ3420[POI2013]Triumphal archBZOJ5174[Jsoi2013]哈利波特与死亡圣器——树形DP+二分答案...
- Skydio 2在行动中的第一响应者部署显示了无人机自主权
- 数字图像处理(入门篇)十四 透视变换
- pip install -U里面的-U是什么意思
- 手机游戏运行时分析工具
- 云服务器与虚拟主机有什么区别,我们应该如何选择?
热门文章
- 10本计算机视觉必读经典图书,入门篇 + 提升篇
- 关于位运算的错误问题
- linux删除旧网卡,如何删除旧网卡驱动
- java 按钮文字_java Button中的标签怎样显示汉字?
- 贴片按键开关_轻触开关的常用类型和规格型号
- 理解线程池中线程的复用原理
- Shiro总是将我重定向到login.jsp
- 020_MySQL运算符
- mysql 万亿数据_sql-server – 哪个数据库可以处理数十亿/数万亿条记录的存储?...
- GoldWave合并多段音乐,去除噪音,剪切想要的片段