700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 益智小游戏 Python 七

益智小游戏 Python 七

时间:2020-11-10 21:22:06

相关推荐

益智小游戏 Python 七

本文参考自力扣题目

1、20. 有效的括号

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。

左括号必须以正确的顺序闭合。

class Solution:def isValid(self, s: str) -> bool:dic = {'(': ')', '{': '}', '[': ']'}nums = []for i in s:if i in "({[":nums.append(i)else:if nums == [] : return Falseelse:j = nums.pop()if i != dic[j]: return Falseif nums == []: return Trueelse: return False

感觉逻辑略感复杂,去复习一下栈里边检查合法性的代码

2、合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

cv

对链表还是没有理解透彻

怎么也想不到可以用递归啊🤪

# Definition for singly-linked list.# class ListNode:#def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution:def mergeTwoLists(self, l1, l2):if l1 is None:return l2elif l2 is None:return l1elif l1.val < l2.val:l1.next = self.mergeTwoLists(l1.next, l2)return l1else:l2.next = self.mergeTwoLists(l1, l2.next)return l2

其实代码简洁的递归常常不是最优解

3、26. 删除排序数组中的重复项

给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

class Solution:def removeDuplicates(self, nums: List[int]) -> int:if len(nums) < 2: return len(nums)c = nums[0]index = 1while(index < len(nums)):if nums[index] != c:c = nums[index]index += 1else:del nums[index]return len(nums)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。