python每期一练1014

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######") == ""
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值