010.退格字符串:请编写一个函数,接收一个含有退格符号的字符串,输出退格后的最终结果。
题目来源:codcwars
"""
假设字符串中的”#“符号表示的是一个退格(删除),例如在字符串"a#bc#d"其实最终结果是"bd"。
请编写一个函数,接收一个含有退格符号的字符串,输出退格后的最终结果。
示例:
输入:" abc#d##c",输出:“ac”
输入:“abc##d######”,输出:""
题目难度:简单
"""
def backspace_str(word: str) -> str:
num = word.count('#')
if num > len(word) - num:
return ''
tmp_list = [item for item in word]
while True:
try:
location = tmp_list.index('#')
tmp_list.pop(location)
tmp_list.pop(location - 1)
except ValueError:
return ''.join(tmp_list)
if __name__ == '__main__':
assert backspace_str("a#bc#d") == "bd"
assert backspace_str("abc#d##c") == "ac"
assert backspace_str("abc##d######") == ""