leetcode-python
亦万
世间行乐亦如此,古来万事东流水。
展开
-
leetcode-67. 二进制求和
一、问题描述给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101"二、代码和思路1.首先记录两个字符串长度的大小,取长度大的字符串为c,并创建一个空列表用来存储没对应位二进制相加的结果2.从后往原创 2018-06-03 15:57:39 · 495 阅读 · 0 评论 -
leetcode-2. 两数相加
一、问题描述给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807二、代码和思路方...原创 2018-08-07 11:11:32 · 252 阅读 · 0 评论 -
leetcode-9. 回文数
一、问题描述https://leetcode-cn.com/problems/palindrome-number/description/二、代码和思路class Solution: def isPalindrome(self, x): """ :type x: int :rtype: bool """ ...原创 2018-08-22 11:21:46 · 242 阅读 · 0 评论 -
leetcode-8. 字符串转整数 (atoi)
一、问题描述实现 atoi,将字符串转为整数。在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。当字符串...原创 2018-08-26 09:59:38 · 173 阅读 · 0 评论 -
leetcode-11. 盛最多水的容器
一、问题描述给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,...原创 2018-08-27 11:05:28 · 233 阅读 · 0 评论 -
leetcode-3-无重复字符的最长子串
一、问题描述给定一个字符串,找出不含有重复字符的最长子串的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 无重复字符的最长子串是 "abc",其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 无重复字符的最长子串是 "b",其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 无重复字符的最长子串是 "wk.原创 2018-08-20 10:27:44 · 215 阅读 · 0 评论 -
leetcode-17. 电话号码的字母组合
一、问题描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].原创 2018-08-31 15:11:12 · 277 阅读 · 0 评论 -
leetcode-70. 爬楼梯
一、问题描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + ...原创 2018-08-24 20:23:50 · 267 阅读 · 0 评论 -
leetcode-5. 最长回文子串
一、问题描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: "babad"输出: "bab"注意: "aba"也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"二、代码和思路1.首先每次选择一个字母左右遍历寻找最长回文串,每次寻找完将字母标志位k向后移一位2.寻找最长回文串有两种情况...原创 2018-08-25 20:57:58 · 174 阅读 · 0 评论 -
leetcode-16. 最接近的三数之和
一、问题描述给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).二、代码和思路1....原创 2018-09-01 20:24:14 · 238 阅读 · 0 评论 -
leetcode-12. 整数转罗马数字
一、问题描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即...原创 2018-08-30 09:12:37 · 154 阅读 · 0 评论 -
leetcode-18. 四数之和
一、题目描述给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足...原创 2018-09-08 11:18:56 · 220 阅读 · 0 评论 -
leetcode-19. 删除链表的倒数第N个节点
一、问题描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。二、代码和思路1.首先统计一共有多少个节点2.p指到倒数第n+1个节点,然后去掉倒...原创 2018-09-08 21:20:12 · 141 阅读 · 0 评论 -
24. 两两交换链表中的节点
一、问题描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.说明:你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。二、代码和思路1.首先判断链表的长度如果小于等于1则不需要交换2.如果为2则只需要交换当...原创 2018-10-05 11:12:39 · 207 阅读 · 0 评论 -
leetcode-22. 括号生成
一、问题描述给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]二、代码和思路这里使用一个递归函数来迭代生成新的组合,递归函数主要遍历调用主要有三个因素决定:如果左括号和右括号都...原创 2018-10-06 17:00:13 · 222 阅读 · 0 评论 -
leetcode-31:下一个排列
一、问题描述 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1二、解题思路 本题的思路...原创 2019-02-12 20:21:42 · 188 阅读 · 0 评论 -
leetcode-859. 亲密字符串
一、问题描述给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。 示例 1:输入: A = "ab", B = "ba"输出: true示例 2:输入: A = "ab", B = "ab"输出: false示例 3:输入: A = "aa", B = ...原创 2018-07-27 21:17:40 · 943 阅读 · 0 评论 -
leetcode-819. 最常见的单词
一、问题描述给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。返回出现次数最多,同时不在禁用列表中的单词。题目保证至少有一个词不在禁用列表中,而且答案唯一。禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。示例:输入: paragraph = "Bob hit a ball, the hit BALL flew far afte...原创 2018-07-12 23:14:37 · 667 阅读 · 0 评论 -
leetcode-345. 反转字符串中的元音字母
一、问题描述编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:给定 s = "hello", 返回 "holle".示例 2:给定 s = "leetcode", 返回 "leotcede".注意:元音字母不包括 "y".二、代码和思路1.分别设置两个标记位i,j分别从0和n-1开始,碰到元音字母则停止向后和向前前进2.判断i是否小于j,小于的话则交换元音字母3.最后返回交换后的...原创 2018-07-02 21:45:25 · 495 阅读 · 0 评论 -
leetcode125. 验证回文串
一、问题描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false二、代码和思路1.这里首先创建一个包含字母的大小写以及数字的列表lst,这里百度了一下lst如何...原创 2018-06-04 11:18:27 · 238 阅读 · 0 评论 -
leetcode-557. 反转字符串中的单词 III
一、问题描述给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。二、代码和思路1.将字符串转换成列表2.将两个空格间的字符倒序3.将列表转换成...原创 2018-06-11 11:18:16 · 381 阅读 · 0 评论 -
leetcode-657. 判断路线成圈
一、问题描述初始位置 (0, 0) 处有一个机器人。给出它的一系列动作,判断这个机器人的移动路线是否形成一个圆圈,换言之就是判断它是否会移回到原来的位置。移动顺序由一个字符串表示。每一个动作都是由一个字符来表示的。机器人有效的动作有 R(右),L(左),U(上)和 D(下)。输出应为 true 或 false,表示机器人移动路线是否成圈。示例 1:输入: "UD"输出: true示例 2:输入...原创 2018-06-12 19:19:44 · 228 阅读 · 0 评论 -
leetcode-680. 验证回文字符串 Ⅱ
一、问题描述给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: "aba"输出: True示例 2:输入: "abca"输出: True解释: 你可以删除c字符。注意:字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。二、代码和思路1.首先一个长为n的s,要想验证最多删一个是回文串,那必须要左边跟右边要顺序相等(s+1)//2+1次2.先...原创 2018-06-13 20:05:52 · 816 阅读 · 0 评论 -
leetcode-383. 赎金信
一、问题描述给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。)注意:你可以假设两个字符串均只含有小写字母。canConstruct("a", "b")...原创 2018-06-06 19:54:54 · 418 阅读 · 0 评论 -
leetcode-387. 字符串中的第一个唯一字符
一、问题描述给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2.方法一:1.代码和思路因为字符串是不可变的,这里我们只能创建一个list来记录列表中是否存在其重复class Solution(object): def firstUniqChar(self, s...原创 2018-06-06 21:04:46 · 976 阅读 · 0 评论 -
leetcode-28. 实现strStr()
一、问题描述实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "b...原创 2018-06-21 18:41:50 · 176 阅读 · 0 评论 -
leetcode-20. 有效的括号
一、问题描述给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:输入: "([)]"...原创 2018-05-31 19:51:35 · 186 阅读 · 0 评论 -
leetcode-434. 字符串中的单词数
一、问题描述统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例:输入: "Hello, my name is John"输出: 5二、代码和思路方法一:1.首先过滤掉两个单词之间的空格,如果发现过滤完空格后已经到字符串的末尾,则返回当前的count,否则加一2.碰到第一个非空格的字符,count += 1继续遍历直到碰到空格3....原创 2018-06-08 15:23:44 · 1076 阅读 · 0 评论 -
leetcode-443. 压缩字符串
一、问题描述给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。 进阶:你能否仅使用O(1) 空间解决问题? 示例 1:输入:["a","a","b","b","c","c","c"]输出:返回6,输入数组的前6个字符应该是:[&原创 2018-06-08 16:06:22 · 1473 阅读 · 0 评论 -
leetcode-696. 计数二进制子串
一、问题描述给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出现的次数。...原创 2018-06-15 21:30:56 · 442 阅读 · 0 评论 -
leetcode-459. 重复的子字符串
一、问题描述给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。示例 2:输入: "aba"输出: False示例 3:输入: "abcabcabcabc"输出: True解释: 可由子字符串 "abc" 重复四次...转载 2018-06-09 07:58:55 · 849 阅读 · 0 评论 -
leetcode-520. 检测大写字母
一、问题描述给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如"USA"。单词中所有字母都不是大写,比如"leetcode"。如果单词不只含有一个字母,只有首字母大写, 比如 "Google"。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: "USA"输出: True示例 2:输入: "FlaG"输出: Fal...原创 2018-06-09 08:18:53 · 538 阅读 · 0 评论 -
leetcode-541. 反转字符串 II
一、问题描述给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。示例:输入: s = "abcdefg", k = 2输出: "bacdfeg"要求:该字符串只包含小写的英文字母。给定字符串的长度和 k 在[1,...原创 2018-06-10 21:06:24 · 657 阅读 · 0 评论 -
leetcode-551. 学生出勤纪录 I
一、问题描述给定一个字符串来代表一个学生的出勤纪录,这个纪录仅包含以下三个字符:'A' : Absent,缺勤'L' : Late,迟到'P' : Present,到场如果一个学生的出勤纪录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。你需要根据这个学生的出勤纪录判断他是否会被奖赏。示例 1:输入: "PPALLP"输出: True示例 2:输入: "PP...原创 2018-06-10 21:21:39 · 708 阅读 · 0 评论 -
leetcode-86. 分隔链表-python
题目描述:给定一个链表和一个特定值x,对链表进行分隔,使得所有小于x的节点都在大于或等于x的节点之前。你应当保留两个分区中每个节点的初始相对位置。代码中包含了本题的思路# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# ...原创 2019-04-26 14:12:50 · 259 阅读 · 0 评论