第一种做法是O(n*n)的复杂度,第二种做法是O(N)。
class Solution:
def solve(self , A , B ):
# write code here
if not A and not B:
return True
if len(A) != len(B):
return False
done = 0
for i in range(len(B)):
res = i
for j in range(len(A)):
if res == len(B):
done = 1
res = 0
if not done:
if A[j] == B[res]:
res += 1
else:
break
else:
if A[j] == B[res]:
res += 1
else:
done = 0
break
if j == len(A) - 1:
return True
return False
这种做法肯定是有问题的,badcase就是"abbb", “bbab”
class Solution:
def solve(self , A , B ):
if not A and not B:
return True
if len(A) != len(B):
return False
res = A + A
num = 0
for i in range(len(res)):
if num == len(B):
return True
if res[i] == B[num]:
num += 1
else:
num = 0
if num == len(B):
return True
else:
return False