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()