Проблем със задача

‘Title search’ Mock exam 4
Не мога да разбера къде е проблема с решението ми и системата ми дава 10 точки. Ако някой има правилно решение може ли да го сподели?
Моето решение:
title1=input()

title=[]

n=int(input())

a=0

for character in title1:

title.append(character)

for k in range(n):

search=input()

for letter in search:

    if letter in title:

        a=a+1

if a==0:

    print('No such title found!')

elif a!=0 and a<len(search):

    a=0

    print('No such title found!')

elif a==len(search):

    for element in search:

        title.remove(element)

    print(*title,sep='')

    a=0
title1=input()
title=[]
n=int(input())
a=0
for character in title1:
    title.append(character)

for k in range(n):
    search=input()
    for letter in search:
        if letter in title:
            a=a+1
    if a==0:
        print('No such title found!')
    elif a!=0 and a<len(search):
        a=0
        print('No such title found!')
    elif a==len(search):
        for element in search:
            title.remove(element)
        print(*title,sep='')
        a=0

Горното решение не излезна добре.

От тук мисля, че идва проблемът, тъй като .remove() премахва първия срещнат елемент, без да държи сметка, къде се намира елемента.
За входни данни:
taeclaedreimky
2
telerik
academy

output:
academy

За входни данни:
aeclaedreimkyt #t e в края и съответно вече няма последователност telerik, а има elerikt
2
telerik
academy

output:
academy

което вече не е вярно. :frowning:
Аз имам същия проблем и съм оставила задачата с въпрос за следващата сесия. Ако насоките ми ти помогнат, ще се радвам да споделиш какво си измислил. Успех!

1 Like

Това решение вече дава 100:

title = list(input())
n = int(input())
words = [input() for _ in range(n)]

for word in words:
    tempora = list(title)
    indices = [0]
    for l in word:
        if l in tempora[indices[-1]:]:
            indo = tempora[indices[-1]:].index(l)
            tempora[indo + indices[-1]] = ""
            indices.append(indo + indices[-1])
    if len(indices[1:]) == len(word):
        title = [t for t in tempora if t != ""]
        print("".join(title))
    else:
        print("No such title found!")
2 Likes