给你一个长为N的字符串A: A0 A1 A2 A3 ...... AN-1 S(0) = A0 A1 A2 A3 ...... AN-2 AN-1 S(1) = A1 A2 A3 ...... AN-2 AN-1 A0 S(2) = A2 A3 ...... AN-2 AN-1 A0 A1 ...... S(N-1) = AN-1 A0 A1 A2 A3 ...... AN-2 请你求出有多少个不同的i(0 <= i <= N - 1) ,使得S(i)和S(0)相等。 如: A="aaa" 则输出:3
乍一看,随手写了一个就给对了。。。
# -*-coding:utf-8-*- A = 'aaa' j = 0 for i in range(len(A)): S = '' S = A[i:]+A[:i]#直接切片 if S == A: j += 1 print j
那就貌似没什么难度的说。。。就是每次切片构成新的字符串,然后普通地一比较。