leetcode刷题day1

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 :

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值