北京做网站公司有哪些,da面板安装wordpress,上海建设工程招投标网,linux 下启动 wordpress心路历程#xff1a;
这道题看到括号直接想到栈#xff0c;五分钟新题直接秒了#xff0c;一开始以为需要两个栈分别存储数字和非数字#xff0c;后来发现一个栈就够了#xff0c;思路如图#xff1a; 这道题考察的应该是队栈这两种数据结构的转换#xff0c;因为每次…
心路历程
这道题看到括号直接想到栈五分钟新题直接秒了一开始以为需要两个栈分别存储数字和非数字后来发现一个栈就够了思路如图 这道题考察的应该是队栈这两种数据结构的转换因为每次字符串和数字都需要反过来并且最后的结果其实是按队列出来的
注意的点
1、注意字符串和数字pop出来之后需要用[::-1]取个反 2、string.isdigit()是用来判断string里是否只包含整数数字的有小数点也会返回False
解法栈
class Solution:def decodeString(self, s: str) - str:# 考察栈的搞一个栈即可from collections import dequesk deque([]) for cha in s:if cha ! ]: sk.append(cha)else: # 先pop字符串反过来再pop数字反过来然后再放回去temp, num [], while sk[-1] ! [: temp.append(sk.pop())temp temp[::-1] # 反过来注意这里最好temp用列表比较好sk.pop() # [ 出栈开始pop数字while sk and sk[-1].isdigit(): num sk.pop()num int(num[::-1])sk.append(.join(temp * num))return .join(sk)