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