![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串
aaaqqq1234
这个作者很懒,什么都没留下…
展开
-
组合总和
给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。class Solution: def combinationSum4(self, nums: List[int], target: int) -> int: # f(4) = (f(3) ) + (f(2) ) + (f(1) ) dp = [0] * (target + 1) for n in nums:原创 2020-09-27 14:09:37 · 68 阅读 · 0 评论 -
组合总和3
找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。class Solution: def combinationSum3(self, k, n): res = [] def backtrack(path, index, n, k): if n == 0 and k == 0: #单次结束并添加的条件,和为n, 总数为k. res.a原创 2020-09-27 14:06:00 · 100 阅读 · 0 评论 -
组合总和2
candidates 中的每个数字在每个组合中只能使用一次。class Solution: def combinationSum2(self, candidates, target): # 将数组进行升序排序 candidates.sort() # 结果列表 ans = [] # 可能组合 tmp = [] def helper(idx, total): if原创 2020-09-27 14:01:25 · 83 阅读 · 0 评论 -
组合总和
class Solution: def combinationSum(self, candidates, target): # 结果列表 ans = [] # 可能的组合 tmp = [] def helper(idx, total): """回溯,求组合总和 Args: idx: 选取元素索引 total:原创 2020-09-27 13:53:05 · 74 阅读 · 0 评论 -
2020-09-15
给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A。例如,如果这个列表是 [“time”, “me”, “bell”],我们就可以将其表示为 S = “time#bell#” 和 indexes = [0, 2, 5]。对于每一个索引,我们可以通过从字符串 S 中索引的位置开始读取字符串,直到 “#” 结束,来恢复我们之前的单词列表。那么成功对给定单词列表进行编码的最小字符串长度是多少呢?示例:输入: words = [“time”, “me”, “bell”]输出:原创 2020-09-15 12:36:26 · 89 阅读 · 0 评论 -
最长回文子串
class Solution: def longestPalindrome(self, s: str) -> str: length = len(s) dp = [[1] * length for _ in range(length)] left, right = 0, 0 #长度为1时 for i in range(1, length): for j in range(length-i):原创 2020-09-15 12:26:38 · 46 阅读 · 0 评论 -
丑数
class Solution: def GetUglyNumber_Solution(self, index): if index == 0: return 0 dp = [0]*index dp[0]=1 a,b,c = 0,0,0 for i in range(1,index): na = dp[a]*2 nb = dp[b]*3原创 2020-09-15 12:05:04 · 82 阅读 · 0 评论 -
顺时针打印矩阵
class Solution: # matrix类型为二维列表,需要返回列表 def printMatrix(self, matrix): # matrix类型为二维列表,需要返回列表 row = len(matrix) res = [] while matrix: for i in range(len(matrix[0])): res.append(matrix[0][i])原创 2020-09-15 12:04:14 · 65 阅读 · 0 评论 -
最大数
示例 1:输入: [10,2]输出: 210示例 2:输入: [3,30,34,5,9]输出: 9534330class Solution(object): def largestNumber(self, nums): for i in range(len(nums)): for j in range(len(nums) - i - 1): if str(nums[j]) + str(nums[j + 1]) >原创 2020-09-13 21:58:12 · 626 阅读 · 0 评论 -
表示数值的字符串
class Solution: def isNumber(self, s: str) -> bool: s = s.strip() fdot = False fe = False fdigit = False for index,value in enumerate(s): if value in ['+','-']: # + - 只能出现在第一个位置,或者中间且前面不能出现e。原创 2020-09-08 21:15:19 · 52 阅读 · 0 评论 -
回文数
题目判断一个数是不是回文数思路依次取出第一位和最后一位,用ranger = 1,x>10,x//ranger,ranger*=10,取出最高位,x%10取出最低位。然后更新x,和ranger//100代码def palindrome(x): if x<0: return False ranger = 1 while x // ranger >= 10: ranger *=10 print(ranger) wh原创 2020-08-06 22:59:28 · 131 阅读 · 0 评论 -
同字母异序词
题目给一个s和p返回p在s中同字母异序词的起始位置s: “cbaebabacd” p: “abc”Output:[0, 6]思路滑动窗口代码def areAnagram(str1, str2): if len(str1) != len(str2): return False return sorted(str1) == sorted(str2)def findAnagrams(s,p): length = len(p) list1 = []原创 2020-08-04 23:00:41 · 205 阅读 · 0 评论 -
同字母异序词
题目abcd和dabc是同字母异序词思路通用语言解法,用Acsll长度的数组来统计每个字符的次数def same_char_sort(list1,list2): char_num = 256 count1 = [0]*char_num count2 = [0]*char_num for i in list1: count1[ord(i)] += 1 for j in list2: count2[ord(j)] += 1原创 2020-08-04 22:21:23 · 436 阅读 · 0 评论 -
排序数组中删除重复元素
题目intput=【1,1,2】output = 【1,2,X】思路双指针代码def removeDuplicates(list1): tail = 0 for i in range(1,len(list1)): if list1[tail] != list1[i]: tail += 1 list1[tail] = list1[i] tail = tail +1 while tail<len(l原创 2020-08-04 22:06:21 · 89 阅读 · 0 评论 -
字符串中最大连续重复字符
题目input:s = “aaaabbaacccccdde”output:5,cdef maxRepeating(s): count=1 max1 = 0 str = '' for i in range(len(s)-1): if s[i] == s[i+1]: count +=1 if count>max1: str = s[i] else:原创 2020-08-04 21:38:05 · 1029 阅读 · 0 评论 -
相同收尾的子字符串数量统计
题目input abcaboutput 7思路暴力解法def count_sub(str): count = 0 for i in range(len(str)): for j in range(i,len(str)): if str[i] == str[j]: count += 1 return count原创 2020-08-04 21:25:16 · 138 阅读 · 0 评论 -
偶数子串的数量
题目给一个字符串,记录偶数子串的数量思路每次遍历到一个偶数时候,它自己加上前面的n-1个数字都可以和它组成偶数代码def ou_count(list): length = len(list) count = 0 for i in range(length): if list[i]%2 == 0: count += i+1 return count...原创 2020-08-04 21:02:42 · 474 阅读 · 0 评论 -
同字母异序词
题目s = “cbaebabacd”p = “abc”return [0,6]思路s中三个三个的去在p中比较。代码def sortsame(a,b): a = list(a) b = list(b) a.sort() b.sort() if a == b: return Truedef findAnagrams(s, p): res = [] lens = len(s) for i in range(lens):原创 2020-08-02 17:02:30 · 194 阅读 · 0 评论