首页 > 其他分享 >摘记

摘记

时间:2023-07-18 19:23:32浏览次数:20  
标签:std int 最小 表示法 start str 摘记

目录

最小表示法

最小表示法就是找出字符串S的的循环同构串中字典序最小的一个

std::string findMinimumRepresentation(const std::string& str) {
	int n = str.length();
	int i = 0, j = 1, k = 0;
	while (i < n && j < n && k < n) {
		if (str[(i + k) % n] == str[(j + k) % n]) {
			k++;
		} else {
			if (str[(i + k) % n] > str[(j + k) % n]) {
				i = i + k + 1;
			} else {
				j = j + k + 1;
			}
			if (i == j) {
				j++;
			}
			k = 0;
		}
	}
	int start = std::min(i, j);
	return str.substr(start) + str.substr(0, start);
}

标签:std,int,最小,表示法,start,str,摘记
From: https://www.cnblogs.com/Qiansui/p/17563914.html

相关文章

  • Robocom训练摘记
    目录2021RoboCom机器人开发者大赛(初赛)2021RoboCom机器人开发者大赛(复赛)拼题A打卡奖励2021RoboCom机器人开发者大赛(初赛)pta题解2021RoboCom机器人开发者大赛(复赛)pta题解拼题A打卡奖励题面:题意:普通背包问题。你有m的时间可以做n张打卡卷,做完第i张打卡卷需要\(m_i......
  • c++ 多线程摘记
    有没有linux和windows通用的多线程库?ChatGPT:是的,C++11标准引入了一个名为std::thread的多线程库,它可以在Windows和Linux上使用。std::thread库提供了一种方便的方式来创建和管理线程,包括启动、等待、终止和同步线程。此外,它还提供了一些便利的功能,例如线程局部存储......
  • C++ STL摘记
    一、string类补充1.函数示例:(1)find和rfind函数,返回的是下标或者string::nposindex=ss.find(s1,pos,num)find从pos(包括)开始往右查找(num的作用待补充)index=s......
  • C++ STL摘记
    一、string类补充1.函数示例:(1)find和rfind函数,返回的是下标或者string::nposindex=ss.find(s1,pos,num)find从pos(包括)开始往右查找(num的作用待补充)index=s......