随笔分类 - Python
摘要:sort()函数: sort()函数是原址排序,字符串、元组没有sort()方法——因为均不可修改。 如果需要一个排序好的副本,同时保持原有列表不变,可以这样操作: 1 x =[4, 6, 2, 1, 7, 9] 2 3 y = x[ : ] 4 5 y.sort() 注:y = x[ : ] 通过
阅读全文
摘要:思路:想到:面积不为0,即能组成三角形,面积就不会是0,即满足两边之和大于第三边。1、将数组A降序排列,三个指针:up,mid,low分别指向前三个元素; 循环结束条件是:low=len(A);2、若满足两边之和大于第三边,即up<mid+low,则返回up+mid+low;3、不满足up<mid+
阅读全文
摘要:思路:1、遍历A,取出其中的奇数(list1)、偶数(list2);2、下标为奇数时从list1中取一个元素插入;3、下标为偶数时从list2中取一个元素插入; 1 class Solution(object): 2 def sortArrayByParityII(self, A): 3 """ 4
阅读全文
摘要:思路详见注释。 1 class Solution(object): 2 def intersect(self, nums1, nums2): 3 """ 4 :type nums1: List[int] 5 :type nums2: List[int] 6 :rtype: List[int] 7 "
阅读全文
摘要:1 class Solution(object): 2 def intersection(self, nums1, nums2): 3 """ 4 :type nums1: List[int] 5 :type nums2: List[int] 6 :rtype: List[int] 7 """ 8
阅读全文
摘要:思路:1、s和t长度不同,返回false;2、转list,sort(),s==t则返回true,否则返回false。 1 class Solution(object): 2 def isAnagram(self, s, t): 3 """ 4 :type s: str 5 :type t: str
阅读全文
摘要:思路:i、j指针分别遍历name和typed:若typed[j] == name[i]:i、j同步后移;若typed[j] != name[i]:i不动、j后移;j比i先遍历完,则返回false;否则返回true。 1 class Solution(object): 2 def isLongPres
阅读全文
摘要:思路:双指针,就是反转字符串的思路,不过加了层非字母的判断。详见注释。注:遇到非字母字符移动指针后不能忽略continue,因为不确定下一个字符就是字母。 1 class Solution(object): 2 def reverseOnlyLetters(self, S): 3 """ 4 :ty
阅读全文
摘要:思路:1、若A和B都为空,返回False;2、若两串长度不同,返回False;3、若A和B相等, 只要有重复元素,返回True;4、若两串长度相同但不相等,统计不同字符的个数num,并记录其位置,若num>2,返回False;5、将A中不同的两个字符交换位置,与B相等,返回True。 1 class
阅读全文
摘要:1 class Solution(object): 2 def toGoatLatin(self, S): 3 """ 4 :type S: str 5 :rtype: str 6 """ 7 # 定义元音字母集合 8 vowel = ['a', 'e', 'i', 'o', 'u', 'A', '
阅读全文
摘要:思路:1、将整个段落中的字母转成小写;2、用各标点符号分割段落;3、遍历2返回的list,统计不在禁用表中且出现次数最多的单词并返回。 1 import re 2 3 class Solution(object): 4 def mostCommonWord(self, paragraph, bann
阅读全文
摘要:思路:逐个翻译每个单词的摩斯码,若result[]中不存在相投的摩斯码,则存入;否则翻一下一个单词;返回result[]的有效长度; 1 class Solution(object): 2 def uniqueMorseRepresentations(self, words): 3 """ 4 :t
阅读全文
摘要:思路: 1、遍历从1 N+1的所有整数2、将当前数字转化成字符串ch,只有所有字符都是list1中的字符,才满足旋转条件;3、遍历字符串化后的数,将存在list1中的字符旋转,拼接给ans;4、旋转后比较ch和ans,相等则res加1;5、返回res。 1 class Solution(object
阅读全文
摘要:1 class Solution(object): 2 def toLowerCase(self, str): 3 """ 4 :type str: str 5 :rtype: str 6 """ 7 res = "" 8 for i, ch in enumerate(str): 9 if ord(
阅读全文
摘要:思路: 首先分析题目要求的子串特点:0和1数量必须相等且不能交叉排列,即子串一半是0、另一半是1。 1、遍历原串s,统计连续相同字符的个数,存到list中;2、遍历list,每相邻两个元素,取其中较小者(相等则任取其一)添加到sum中;3、返回sum。 1 class Solution(object
阅读全文
摘要:1 class Solution(object): 2 def repeatedStringMatch(self, A, B): 3 """ 4 :type A: str 5 :type B: str 6 :rtype: int 7 """ 8 lenb = len(B) 9 # 用来暂存原A串 1
阅读全文
摘要:给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。注意:字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。示例 1:输入: "aba"输出: True示例 2:输入: "abca"输出: True解释: 你可以删除c字符。注意: 1. 字符串只包含从 a-z 的小写
阅读全文
摘要:在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。移动顺序由字符串表示。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。注意:机器
阅读全文
摘要:给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。示例 1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetno
阅读全文
摘要:给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:'A' : Absent,缺勤'L' : Late,迟到'P' : Present,到场如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。你需要根据这个学生的出勤记录判断他是否
阅读全文