随笔分类 -  Leetcode题解

摘要:前提:将两个升序链表合并为一个新的 升序 链表并返回 思路: 比较两个链表的初始结点,初始结点较小的链表继续比较 该链表剩下部分和另一个链表。该题使用递归完成 代码: # Definition for singly-linked list. # class ListNode: # def __ini 阅读全文
posted @ 2021-07-14 22:03 lms21 阅读(67) 评论(0) 推荐(0) 编辑
摘要:思路: 采用出栈入栈思路,且该题目是 左括号必须以正确的顺序闭合。即后进的左括号一定是先闭合的。 变量: stack = ['?'] 1.遍历输入的字符串 2.如果遍历的字符为dic字典中的左括号,添加进stack 列表里 3.如果遍历的字符不为左括号,则判断是否为stack列表中最后一个添加左括号 阅读全文
posted @ 2021-07-14 21:30 lms21 阅读(41) 评论(0) 推荐(0) 编辑
摘要:思路: 使用zip函数完成。 zip( [1,2,3],[1,2,3,4]) -->[(1,1), (2,2), (3,3)] 再将每一项取出来进行去重,使用强制转set类型,可去重。 判断去重后,长度是否为1 如果为1, 则代表为公共前缀,加入到一个原本是空的string变量里面记录下来 如果不为 阅读全文
posted @ 2021-07-12 00:24 lms21 阅读(25) 评论(0) 推荐(0) 编辑
摘要:思路: 当小的罗马数字放在大的罗马数字左边时,可相当于做减法,因为不会出现乱放的现象(即输入遵循罗马数字规则)所以可以直接判断后一位来决定做不做减法。 将代表的罗马数字与数字放入一个字典 1. 循环取出字符,判断当前位和后一位所代表数字的大小关系,循环长度为原长度-1,因为最后一位找不到后一位 2. 阅读全文
posted @ 2021-07-08 23:36 lms21 阅读(29) 评论(0) 推荐(0) 编辑
摘要:思路: 1. 数字倒序比较法(基于LeetCode#8 数字反转来完成) a. 将输入数字通过%10 求余 取反转 b.反转后数字与原来输入比较,一致则返回true python3: def isPalindrome(self, x: int) -> bool: if x < 0 : #一开始加了x 阅读全文
posted @ 2021-07-08 23:12 lms21 阅读(61) 评论(0) 推荐(0) 编辑
摘要:思路: 采用数学方法,诸位取出最后一位数字,然后通过X10,把最后的数乘到最前。python应注意先把数字转换成正数处理,因为负数的求商和取余会是地板除,即向低取整数,例如 商为-11/10 = -1.1-->-2, 余数=被除数-除数*商 -11-10*-2 = 9. 所以直接取余会是错误的数。 阅读全文
posted @ 2021-07-07 23:48 lms21 阅读(70) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示