07. String Explosion
Здравейте! Някой може ли да ми изпрати решение на тази задача с подробно обяснение?
Благодаря предварително!
Линк към задачата --> https://judge.softuni.bg/Contests/Compete/Index/1217#6
Здравейте! Някой може ли да ми изпрати решение на тази задача с подробно обяснение?
Благодаря предварително!
Линк към задачата --> https://judge.softuni.bg/Contests/Compete/Index/1217#6
Здравей!
Предлагам едно по-кратко решение. Написах няколко коментара за яснота. Надявам се да съм полезен!
https://pastebin.com/pBxRn0u2
П.С. Поздрави на ПМГ В. Търново ! :)
Страхотно решение, кратко и ясно(и работещо :-)), благодаря, че го сподели.
Павлина
Страхотно рвшение! Трудно бих се сетил....
Някой може ли да помогне, да ми каже аз къде греша? Judge дава 50/100
Привет,
може ли да обясниш ето тук: field = field.Remove(i, 1); // Remove char on this index
Защо е (i,1)?
Разбирам, че махаме индекса , на който е числото, но защо той е 1 -ца?
Благодаря!
Поздрави!
Ето и за Python :
enter = input()
new_list = ""
explosion = 0
lenght = 0
while lenght < len(enter):
    for i in range(len(enter)):
        if not enter[i] == ">" and explosion > 0:
            explosion -= 1
        elif enter[i] == ">":
            explosion += int(enter[i + 1])
            new_list += enter[i]
        else:
            new_list += enter[i]
        lenght += 1
print(new_list)
        Здравей,
изпозлвах твоя код за подсказка, защото бях зациклил на тази задача малко (вместо да правя втори стринг и просто да не добавям символа, който трябва да "гръмне" - упорито се опитвах да работя само с един стринг и да го изтрия по индекс), за което благодаря, но всъщност има някои излишни елементи - не виждам какво точно прави или проверява while цикъла. Ето кода "изчистен".
data = input()
output = ""
bomb = 0
for i in range(len(data)):
    if data[i] == ">":
        bomb += int(data[i + 1])
        output += data[i]
    elif data[i] != ">" and bomb > 0:
        bomb -= 1
    else:
        output += data[i]
print(output)
        Кратко решение ,даващо 100 от 100 и от мен:
def main():
user_input = input()
result = []
count = 0
index = 0
for char in user_input:
if char == '>':
count += int(user_input[index + 1])
result.append(char)
elif count > 0:
count -= 1
else:
result.append(char)
index += 1
print(''.join(result))
if __name__ == '__main__':
main()