给定一个字符串,问它的前2位是否是周期字符串,前3位。。。前n位?
数据量大,要线性求解一个字符串才行。这题可以直接利用KMP算法求得的next数列来判断。next[i]=j,表示str[0..j]=str[i-j..i],因为是一个串,所以串的前str[0..i-j-1]是相同的,利用辗转相等可以发现,当(i+1)%(i-next[j])==0即可得到该串为周期串。
之前虽然想到了利用辗转相等来判断,但却傻不拉唧的去重新扫描了一遍,而不知道直接用next数组来判断。
给定一个字符串,问它的前2位是否是周期字符串,前3位。。。前n位?
数据量大,要线性求解一个字符串才行。这题可以直接利用KMP算法求得的next数列来判断。next[i]=j,表示str[0..j]=str[i-j..i],因为是一个串,所以串的前str[0..i-j-1]是相同的,利用辗转相等可以发现,当(i+1)%(i-next[j])==0即可得到该串为周期串。
之前虽然想到了利用辗转相等来判断,但却傻不拉唧的去重新扫描了一遍,而不知道直接用next数组来判断。