我正在尝试编写以下代码。假设您给了一个字符串neighneigh。有人告诉您词根是neigh。现在,您需要查找那里有几匹马。在这种情况下,只有一个。如果是neignheigh,那将是2匹马,因为在第一匹马完成称呼之前,另一匹马打断了它。
尝试使用列表,但事后看来,使用字典并跟踪声音开始(邻居)会更好的位置。这似乎适用于诸如neighneigh(1马),neigh(1马),nneigheigh(2马),nnneigheigheigh(3马)之类的事情。我知道这不是好的代码,但是我只是一个新手。任何评论,或者如果您有更好的版本,请随时分享,评论等。
s = 'neighneigh'
fw=['n','e','i','g','h']
sound=[]
word=[]
index_word=[]
total = 0
break_flag=0
animal_found=0
animal_index=[]
k=0
j=0
horse=0
def check_prev_horse(animal_index,j):
print("check_prev_horse")
prev_horse=1
print(animal_index,j)
print("animal_index",len(animal_index))
if (len(animal_index)==1):
prev_horse==1
return(prev_horse==1)
else:
for a in range(len(animal_index)):
print(a+4,j)
if j<= (a+4):
return(prev_horse==1)
else:
return(prev_horse==0)
for i in range(len(s)):
sound.append(s[i])
print (sound)
while j<len(sound):
target=fw[k]
list_letter=sound[j]
if list_letter==target:
print('Letter found!! list_letter: ' + list_letter + ' = target: ' + target)
word.append(list_letter)
index_word.append(j)
k=k+1
if list_letter=='n':
animal_index.append(j)
horse=check_prev_horse(animal_index,j)
if str(word)==str(fw):
if (horse==1):
animal_found=animal_found+1
#if (len(sound))<(len(fw)):
# break_flag=1
word=[]
k=0
sound[j]='x'
j=0
else:
j=j+1
print ("Total animal found: " + str(animal_found))