题目:
有一个键盘,只有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"))
有什么更好的办法大家可以提出来呀~