字节头条的一道代码题,面试题

拟墨画扇 提交于 2020-04-06 14:04:07

题目:

有一个键盘,只有a-z的26个英文字母的输入按键,现在键盘有两个按键坏了,

按i键,会退格,等同于常规键盘的backspace键,

按o键,会撤回上一步,效果等同于win系统的ctrl+z,

要求实现一个方法,模拟键盘的输出逻辑

思路:

先定义一个list类型的stack,对输入的字符串进行处理,

处理完成后,stack中只有常规字母,和“i”(就是删除)

然后再对上一步的list进行循环,处理,

   def getBoard(strs):
        stack = []
        result=[]
        for s in strs:
            if s=="i" :
                stack.append("back")
            elif s=="o" and len(stack)>0:
                stack.pop()
            else:
                stack.append(s)
        for action in stack:
            if action=="back" and len(result)>0:
                result.pop()
            else:
                result.append(action)
        return "".join(result)

if __name__=="__main__":
    print(getBoard("zijietiaodong"))

 

 

有什么更好的办法大家可以提出来呀~

发布了56 篇原创文章 · 获赞 20 · 访问量 10万+
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!