Alpha Mock Exam 4 - Title Search Python

Здравейте,

Опитвам вече няколко различни начина да реша задачата, но накрая минават само 5 теста, а на другите ми дава Wrong Result. Наистина вече не знам какво да направя, за да я реша. Някой дали може да даде насоки как я е решил?

Привет, може ли да споделиш твоя код?
Линк към задачата:
https://learn.telerikacademy.com/mod/page/view.php?id=37281

Привет,

Ето го моя код. Предполагам логиката ми за решаване е грешна, so please don’t judge…

Обърни внимание на буквите, които махаш трябва да са една след друга ако имаш “abcdefg” не може махнеш първо “c” и след това “a”, защото след като махмеш “c” стринга остава “defg”. Също така виж какво става когато имаш еднакви букви в стринга.

1 Like

Благодаря ти за отговора. Имах съмнения, че не съм разбрала условието както трябва, и ти го потвърди.
Въпреки това, все още не мога да измисля логиката за решаване. Някой дали би могъл да сподели свое решение, или поне да даде насоки как се решава - какви цикли върти, през какво итерира и тн?
Благодаря предварително! :blush:

Този код е работещ, но за съжаление не е писан от мен.Не съм убеден,че разбирам как работи на 100 % и не мисля,че бих подходил така към задачата. Все още не мога да я реша.Ако някой има друга алтернатива,моля да я приложи :slightly_smiling_face:

Можеш просто да итерираш през стринга и когато имаш съвпадение на буква да я заместиш със символ и после просто сравняваш броя на символите с дължината на думата. (“abcdefg” и търсиш например “bcf” да получиш “a - - de - g” и ако имаш 3 “-” съответно буквите “bcf” са 3 имаш съвпадение и само махаш тиретата от стринга за следващото търсене.

1 Like

searchT - Pastebin.com едно елегантно решение и кратко.

2 Likes
title = list(input())
n_lines = int(input())

for _ in range(n_lines):
    stack = list(input())[::-1]

    stack_points = len(stack)
    points = 0
    new_title = title[:]

    for w in range(len(new_title)):
        if stack and new_title[w] == stack[-1]:
            new_title[w] = 0
            stack.pop()
            points += 1

    if points == stack_points:
        title = [s for s in new_title if s != 0]
        print(''.join(title))
    else:
        print('No such title found!')

Едно решение и от мен. Не е от най-добрите, но би помогнално на някой.