Python日常一练
日常编写Python代码
Chimpanzee1
这个作者很懒,什么都没留下…
展开
-
1079.活字印刷(Python)
1079.活字印刷你有一套活字字模tiles,其中每个字模上都刻有一个字母tiles[i]。返回你可以印出的非空字母序列的数目。注意:本题中,每个活字字模只能使用一次。示例1:输入:“AAB”输出:8解释:可能的序列为“A”, “B”, “AA”, “AB”, “BA”, “AAB”, “ABA”, “BAA”。示例2:输入:“AAABBC”输出:188from itertools import permutationsdef func(tiles): n = len(ti原创 2020-11-16 11:26:36 · 221 阅读 · 0 评论 -
832. 翻转图像(Python)
832. 翻转图像给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。示例 1:输入: [[1,1,0],[1,0,1],[0,0,0]]输出: [[1,0,0],[0,1,0],[1,1,1]]解释: 首先翻转每一行: [[0,原创 2020-10-30 19:34:40 · 247 阅读 · 0 评论 -
贪心法-区间调度问题
区间调度问题测试数据策略的选取可行的策略在可选的工作中,每次都选择结束时间最早的。def func(nums1, nums2): count = 0 arr = [] for i in range(len(nums2)): arr.append([nums1[i],nums2[i]]) t = 0 for i in range(len(nums2)): if t < arr[i][0]:原创 2020-09-18 22:18:04 · 167 阅读 · 0 评论 -
贪心算法:硬币问题(有限个)
贪心算法贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解 [1] 。 贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择。也就是说,不从整体最优上加以考虑,做出的只是在某种意义上的局部最优解。详情参见贪心算法硬币问题 根据贪心选择性质:一个问题的整体最优解可通过一系列局部的最优解的选择达到,并且每次的选择可以依赖以前作出的选择,但不依赖于后面要作出的选择。这就是贪心选择性质。对于一原创 2020-09-05 01:06:01 · 2496 阅读 · 1 评论 -
贪心算法:硬币问题(无限个)
贪心算法 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解 [1] 。 贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择。也就是说,不从整体最优上加以考虑,做出的只是在某种意义上的局部最优解。详情参见[https://baike.baidu.com/item/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95/5411800?fr=aladdin]。硬币问题原创 2020-08-22 02:33:23 · 943 阅读 · 3 评论 -
最长公共子序列的动态规划解法
最长公共子序列1.定义 最长公共子序列,英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。例:BDCABA;和ABCBDAB的最长公共子序列为BCBA,长度为4。2.定义的延伸 最长公共子序列(LCS)是一个在一个序列集合中(通常为两个序列)用来查找所有序列中最长子序列的问题。这与查找最长公共子串的问题不同的地方是:子序列不需要在原序列中占原创 2020-08-13 21:15:05 · 155 阅读 · 0 评论 -
0-1背包的递归解法
0-1背包问题的解法1.递归算法(1)输入物品个数n,背包容量W;(2)定义物品价值列表v,物品体积列表w;(3)def rec(i,j): # 从第i个物品开始挑选总重小于j的部分(4) res = 0;(5) if i == n: # 剩余物品为0(6) return res(7) elif j < w[i]: # 无法挑选该物品(8) res = rec(i+1, j)(9) else: # 尝试挑选与不挑选两种情况(10) res = max原创 2020-08-13 20:21:43 · 1449 阅读 · 1 评论 -
斐波那契数列的递归解法和动态规划解法
斐波那契数列的动态规划解法1.递归解法# 1.递归def fib(n): if n == 0 or n == 1: return n else: return fib(n-1) + fib(n-2)print(fib(10))2.动态规划def fastFib(n,memo): #memo是设置的一个字典 if not n in memo: #如果斐波那契数列的第n项数值不在字典里,那么用递归方式计算该值,并把该值放入字典中原创 2020-07-30 21:15:39 · 927 阅读 · 0 评论 -
Python统计二进制中1的个数(Counter、count、位运算&)
二进制中1的个数请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。示例 1:输入:11输出:3解释:输入的二进制串 00000000000000000000000000001011中,共有三位为 ‘1’。示例 2:输入:128输出:1解释:输入的二进制串 00000000000000000000000010000000中,共有一位为 ‘1’。示例 3:输入:42949672原创 2020-07-20 11:59:50 · 5499 阅读 · 0 评论 -
Python替换空格(字符串函数)
替换空格请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”def str_replace(varstr): newstr = varstr.replace(' ', '%20') # newlist = varstr.split(' ') # newstr = '%20'.join(newlist) return newstrprint(str_repla原创 2020-07-20 11:58:45 · 4914 阅读 · 0 评论 -
Python数组中数字出现的次数
数组中数字出现的次数 II在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。示例 1:输入:nums = [3,4,3,3]输出:4示例 2:输入:nums = [9,1,7,9,7,9,7]输出:1#方法一from collections import Counterdef numscounter(varlist): newdict = Counter(varlist) for k,v in newdict.items原创 2020-07-20 11:57:55 · 2930 阅读 · 0 评论 -
Python打印从1到最大的n位数
打印从1到最大的n位数输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]示例 2:输入: n = 2输出: [1,2,3,4,5,6,…,97,98,99]说明:用返回一个整数列表来代替打印n 为正整数def num_sorted1(n): res = iter(range(1, pow(10, n))) print(s原创 2020-07-20 11:56:27 · 822 阅读 · 0 评论 -
Python左旋转字符串(切片、旋转过程)
左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = “abcdefg”, k = 2输出:“cdefgab”示例 2:输入: s = “lrloseumgh”, k = 6输出:“umghlrlose”s = input("请输入字符串:")k = int(input("请输入左旋转位数:"))# #方原创 2020-07-20 11:54:53 · 1047 阅读 · 0 评论 -
Python求1+2+…+n
求1+2+…+n求 1+2+…+n ,要求不能使用乘除法、for、while、if、else等关键字及条件判断语句示例1:输入: n = 3输出: 6示例2:输入: n = 9输出: 45n = int(input('请输入n=:'))#方法一sum_n = sum(range(1, n+1))print("方法一:", sum_n)#方法二from functools import reducesum_n = reduce(lambda a, b:a+b, range(1,原创 2020-07-18 14:09:01 · 9324 阅读 · 0 评论