如果可以,返回 true ;否则返回 false 。
magazine 中的每个字符只能在 ransomNote 中使用一次。
def canConstruct(self, ransomNote, magazine):
def delestr(s, i):
if(i == 0):
s = s[1:]
elif(i > 0 and i < len(s) - 1):
s = s[:i] + s[-(len(s) - (i + 1)):]
elif(i == len(s) - 1):
s = s[:len(s) - 1]
return s
x = ransomNote
y = magazine
x_len = len(ransomNote)
y_len = len(magazine)
for i in range(x_len):
for j in range(y_len):
if(y[j] == x[i]):
x = delestr(x, i)
y = delestr(y, j)
x_len = x_len - 1
y_len = y_len - 1
break
if x_len == 0:
return True
else:
return False
▼IndexError: string index out of range
if(y[j] == x[i]) :
你在循环中改x_len和y_len了啊,而且删除了元素。应该让i值减去1
14行改成while语句吧
while i<x_len:
for j in range(y_len):
if(y[j] == x[i]):
x = delestr(x, i)
y = delestr(y, j)
x_len = x_len - 1
y_len = y_len - 1
break
i=i+1