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 ;
}
目录
相关文章
|
12天前
lanqiao OJ 1030 蓝肽子序列
lanqiao OJ 1030 蓝肽子序列
27 2
|
12天前
lanqiao OJ 3513 岛屿个数(2023省赛)
lanqiao OJ 3513 岛屿个数(2023省赛)
12 2
|
12天前
lanqiao OJ 108 发现环
lanqiao OJ 108 发现环
10 1
|
12天前
acwing 902 最短编辑距离
acwing 902 最短编辑距离
9 1
|
11天前
|
人工智能 Java BI
lanqiao OJ 111 区间位移
lanqiao OJ 111 区间位移
10 0
|
11天前
lanqiao OJ 2143 最少刷题数
lanqiao OJ 2143 最少刷题数
11 0
|
5月前
代码随想录Day45 动态规划13 LeetCode T1143最长公共子序列 T1135 不相交的线 T53最大子数组和
代码随想录Day45 动态规划13 LeetCode T1143最长公共子序列 T1135 不相交的线 T53最大子数组和
56 0
|
11月前
|
算法
代码随想录算法训练营第五十三天 | LeetCode 1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和
代码随想录算法训练营第五十三天 | LeetCode 1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和
56 1
【leetcode每日一题】1027. 最长等差数列
【leetcode每日一题】1027. 最长等差数列
|
人工智能 算法 C++
每日算法系列【LeetCode 943】最短超级串
每日算法系列【LeetCode 943】最短超级串