如何识别字符串中重复的隐藏单词

时间:2019-04-25 02:23:42

标签: python-3.x

我正在尝试编写以下代码。假设您给了一个字符串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))

0 个答案:

没有答案