lanqiao oj 1628 最短循环节问题

简介: lanqiao oj 1628 最短循环节问题

用户登录

#include<iostream>
#include<algorithm>
#include<cstring>
 
using namespace std ; 
const int N = 1e6 +10 ;
char s[N] ;
int n ; 
int ne[N] ;
int main(){
  cin >> n ; 
  cin >> s + 1;
  int minn = 1e9 ; 
  for(int i = 2 , j = 0; i <= n ;i ++){
    while(j && s[i] != s[j+1]) j = ne[j] ;
    if(s[i] == s[j+1]){
      minn = min(minn, i - j - 1 ) ;
    }
    ne[i] = j ; 
  }
  
  cout << minn << endl ;
  return 0 ;
}
目录
相关文章
|
1月前
lanqiao OJ 1030 蓝肽子序列
lanqiao OJ 1030 蓝肽子序列
35 2
|
1月前
acwing 902 最短编辑距离
acwing 902 最短编辑距离
10 1
|
1月前
lanqiao OJ 3513 岛屿个数(2023省赛)
lanqiao OJ 3513 岛屿个数(2023省赛)
14 2
|
1月前
lanqiao oj 186 糖果(状态压缩dp)
lanqiao oj 186 糖果(状态压缩dp)
13 0
|
1月前
|
人工智能 Java BI
lanqiao OJ 111 区间位移
lanqiao OJ 111 区间位移
12 0
|
6月前
【每日一题Day192】LC1033移动石子直到连续 | 分类讨论 贪心
【每日一题Day192】LC1033移动石子直到连续 | 分类讨论 贪心
30 0
|
人工智能
线性DP——AcWing 898. 数字三角形、AcWing 895. 最长上升子序列
线性DP——AcWing 898. 数字三角形、AcWing 895. 最长上升子序列
81 0
|
算法
Leecode 300. 最长上升子序列
Leecode 300. 最长上升子序列
64 0
【leetcode每日一题】1027. 最长等差数列
【leetcode每日一题】1027. 最长等差数列
|
人工智能 算法 C++
每日算法系列【LeetCode 943】最短超级串
每日算法系列【LeetCode 943】最短超级串