问题
找到一个字符串的所有循环位移中最小的那个。
方法
双指针,假设当前两个串分别从 和 开始,暴力找出它们第一个不同的位置,设它到每个串开头的距离是 。
- 如果 ,说明当前找到的这个串 没用。并且 到 之间的点也不能作为起点;
- 如果 ,说明当前找到的串 没用。并且 到 之间的点也不能作为起点;
- 没有第三种可能。
所以, 和 移动的总距离都不超过 ,时间复杂度是 。
找到一个字符串的所有循环位移中最小的那个。
双指针,假设当前两个串分别从 和 开始,暴力找出它们第一个不同的位置,设它到每个串开头的距离是 。
所以, 和 移动的总距离都不超过 ,时间复杂度是 。