Z1 Z 길이 $n$의 문자열 $S[0:n]$에 대하여 $Array Z[0:n]$를 $O(n)$에 구한다. $i$ $Z$ a n a n a b 0 6 a n a n a b 1 0 n a n a b 2 3 a n a b 3 0 n a b 4 1 a b 5 0 b $Z[i]$는 $S[0:]$와 $S[i:]$의 최대 공통 접두사의 길이이다. 코드는 다음과 같이 작성하였다. def getZ(s): l,r=0,0 ret=[0]*len(s) ret[0]=len(s) for i in range(1,len(s)): if i>r: l=r=i while r 2020. 8. 15. 이전 1 다음