JAVA算法练习题day62
栈
69.有效的括号
class Solution(object):def isValid(self, s):""":type s: str:rtype: bool"""#边界:长度为奇数则FALSEif len(s)%2 != 0:return False#用map 也就是python里的字典来判断是否是左右括号 key:左括号,value:右括号 {key:value}#要添加'?'否则stack里的'?' 在dic里没有dic = {'(':')','[':']','{':'}','?':'?'}#用list模拟栈#stack的长度也比较麻烦。])这种案例return True了 不对的 所以我们初始化stack['?']stack = ['?']# 该样例我没想到,刚开始的思路是有问题的()[]({})for c in s:#查询key是否在dic里面,也即是:当前字符是否为左括号if c in dic:stack.append(c)#遇到右括号了elif dic[stack.pop()] != c:return Falsereturn len(stack) == 1多做了一题,也是hot100里面的:
多数元素:
class Solution(object):def majorityElement(self, nums):""":type nums: List[int]:rtype: int"""#摩尔投票法person = nums[0]count = 1for i in range(len(nums)):if i == 0:continueif person != nums[i]:count-=1elif person == nums[i]:count+=1if count == 0:person = nums[i]count = 1return person