20. Valid Parentheses
Problem of the Url:https://leetcode.com/problems/valid-parentheses/
Problem description:
solution demo:
思路:根据问题要求,首先判断出s的长度为奇数,一定为False;若s的长度为偶数,则需要判断s是否满足题目要求,具体步骤如下:1)对于s中的每一个元素,判断是否为‘([{’,若是存储在left_list中,并将元素对应的')]}'存储在right_list中;若否,转至2)
2)判断right_list是否为空,若否且s中的元素为right_list中最后一个元素,则对left_list和right_list中的元素进行末尾删除,循环继续,直至循环结束转至4);若是,转至3)
3)返回False
4)判断left_list是否为空,若是,返回True,若否,返回False.
其中步骤2)的思想如图:
代码如下:
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
left_right = {'(':')','[':']','{':'}'}
if len(s)%2==1:
return False
left_list = []
right_list = []
for each in s:
if each in left_right.keys():
left_list.append(each)
right_list.append(left_right[each])
elif len(right_list)>0 and (each==right_list[-1]):
left_list.pop()
right_list.pop()
else:
return False
if len(left_list)==0:
return True
else:
return False
result :
26. Remove Duplicates from Sorted Array
Problem of the Url:https://leetcode.com/problems/remove-duplicates-from-sorted-array/
solution demo : way1
class Solution(object):
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
nums1 = nums.copy()
numset = dict()
for each in nums1:
if each not in numset:
numset[each] = 1
else:
nums.remove(each)
return len(nums)
result :
way2 :
class Solution(object):
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
for i in reversed(range(1,len(nums))):
if nums[i]==nums[i-1]:
nums.pop(i)
return len(nums)
result :