Python版Day11
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
给定一个只包括 '('')''{''}''['']' 的字符串 s 判断字符串是否有效。
有效字符串需满足
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
来源力扣LeetCode
链接https://.cn/problems/valid-parentheses
著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
class Solution:
def isValid(self, s: str) -> bool:
stack = []
for item in s:
if item == "(":
stack.append(')')
elif item == '[':
stack.append(']')
elif item == '{':
stack.append('}')
# 如果栈为空或者栈顶不匹配
elif not stack or stack[-1]!=item:
return False
# 如果匹配
else:
stack.pop()
return True if not stack else False
给出由小写字母组成的字符串 S重复项删除操作会选择两个相邻且相同的字母并删除它们。
在 S 上反复执行重复项删除操作直到无法继续删除。
在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
来源力扣LeetCode
链接https://.cn/problems/remove-all-adjacent-duplicates-in-string
著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
class Solution:
def removeDuplicates(self, s: str) -> str:
res = []
for i in s:
if res and res[-1] == i:
res.pop()
else:
res.append(i)
return ''.join(res)
给你一个字符串数组 tokens 表示一个根据 逆波兰表示法 表示的算术表达式。
请你计算该表达式。返回一个表示表达式值的整数。
注意
有效的算符为 '+'、'-'、'*' 和 '/' 。
每个操作数运算对象都可以是一个整数或者另一个表达式。
两个整数之间的除法总是 向零截断 。
表达式中不含除零运算。
输入是一个根据逆波兰表示法表示的算术表达式。
答案及所有中间计算结果可以用 32 位 整数表示。来源力扣LeetCode
链接https://.cn/problems/evaluate-reverse-polish-notation
著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
class Solution:
def evalRPN(self, tokens: List[str]) -> int:
stack = list()
for token in tokens:
if token == '+':
num1 = int(stack.pop())
num2 = int(stack.pop())
res = num1+num2
stack.append(res)
elif token == '-':
num1 = int(stack.pop())
num2 = int(stack.pop())
res = num2-num1
stack.append(res)
elif token == '*':
num1 = int(stack.pop())
num2 = int(stack.pop())
res = num2*num1
stack.append(res)
elif token == '/':
num1 = int(stack.pop())
num2 = int(stack.pop())
res = num2/num1
stack.append(res)
else:
stack.append(token)
return int(stack[-1])