LeetCode 其他部分 简单 Python实现
#LeetCode 其他部分 简单 Python实现
'''
位1的个数
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 :
输入: 11
输出: 3
解释: 整数 11 的二进制表示为 00000000000000000000000000001011示例 2:
输入: 128
输出: 1
解释: 整数 128 的二进制表示为 00000000000000000000000010000000
'''
方法1: 通过
class Solution(object):def hammingWeight(self, n):""":type n: int:rtype: int"""num =0bin_n = bin(n)print(bin_n)for i in bin_n:#print(i)if i == '1':num=num +1#print(i,num)return num
my = Solution()
a = my.hammingWeight(3)
print(a)#方法2:通过
class Solution(object):def hammingWeight(self, n):""":type n: int:rtype: int"""bin_n = bin(n)return bin_n.count('1')
my = Solution()
a = my.hammingWeight(3)
print(a)方法3:通过,位运算
class Solution(object):def hammingWeight(self, n):""":type n: int:rtype: int"""count=0while n!=0:if n&1==1:#十进制可以使用&,>>count+=1n=n>>1 #右移一位return count
'''
汉明距离
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。也就是求异或运算给出两个整数 x 和 y,计算它们之间的汉明距离。注意:
0 ≤ x, y < 231.示例:
输入: x = 1, y = 4输出: 2解释:
1 (0 0 0 1)
4 (0 1 0 0)↑ ↑上面的箭头指出了对应二进制位不同的位置。'''
class Solution(object):def hammingDistance(self, x, y):""":type x: int:type y: int:rtype: int"""#print(x&y) #与运算#print(x|y) #或运算return bin(x ^ y).count('1') #异或运算后取二进制,计算1个数
my = Solution()
a = my.hammingDistance(5,4)
print(a)'''
颠倒二进制位
颠倒给定的 32 位无符号整数的二进制位。示例:
输入: 43261596
输出: 964176192
解释: 43261596 的二进制表示形式为 00000010100101000001111010011100 ,返回 964176192,其二进制表示形式为 00111001011110000010100101000000 。进阶:
如果多次调用这个函数,你将如何优化你的算法?
'''class Solution:# @param n, an integer# @return an integerdef reverseBits(self, n):bin_n = '{0:032b}'.format(n) #n格式化为二进制bin(n)带有前缀0breverse_bin_n = bin_n[::-1] #反转字符串bin_n是用方法[::-1]reverse_n = int(reverse_bin_n, 2) #二进制转化为十进制数字return reverse_nmy = Solution()
a = my.reverseBits(43261596)
print(a)964176192
[Finished in 0.9s]'''
帕斯卡三角形
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5
输出:
[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]
]
相信很多人已经熟悉了帕斯卡三角形是什么,这里简单介绍一下:
-有N个数组
-第N个数组有N项
-第N个数组的第K项=第N-1个数组的第K-1和第K项之和(K!=1 && K <N)
#方法1:通过AC
#思路:
class Solution:# @return a list of lists of integersdef generate(self, numRows):ret = []for i in range(numRows):ret.append([1])for j in range(1,i+1):if j==i:ret[i].append(1)else:ret[i].append(ret[i-1][j]+ret[i-1][j-1])return retmy = Solution()
a = my.generate(5)
print(a)[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
[Finished in 1.4s]方法2:通过LeetCode,但是没有通过我的编译器。
思路:计算通项公式,首先是编写阶乘函数,然后计算C00,C10,C11即可利用Python 的map嵌套可以很简洁地实现,核心代码只有一行!
'''
class Solution:# @return factorial value of ndef factorial(self,n):if n==0:return 1else:return reduce(lambda x,y:x*y,range(1,n+1))# @return a list of lists of integersdef generate(self, numRows):result = map(lambda i:map(lambda x:self.factorial(i)/self.factorial(x)/self.factorial(i-x),range(i+1)),range(numRows))return resultmy = Solution()
a = my.generate(5)
print(a)<map object at 0x00000000023A0278>
[Finished in 0.8s]'''
有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:
1.左括号必须用相同类型的右括号闭合。
2.左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:
输入: "()"
输出: true示例 2:
输入: "()[]{}"
输出: true示例 3:
输入: "(]"
输出: false示例 4:
输入: "([)]"
输出: false示例 5:
输入: "{[]}"
输出: true
'''
#通过
class Solution(object):def isValid(self, s):""":type s: str:rtype: bool"""dic = {'(':')', '[':']', '{':'}'}lis = []for i in s:if i in dic.keys():print('i_keys is:',i)lis.append(i) #lis里面只能保存(【{elif i in dic.values():print('i_dic is:',i)print('lis is:',lis)print('len(lis) is:',len(lis))print('dic.get(lis[-1]) is:',dic.get(lis[-1]) )if len(lis) == 0 or dic.get(lis[-1]) != i: #dic.get(lis[-1])就是取键lis【-1】对应的值,也就是括号的右半边内容#如果lis为空,说明用】)}开头,报错;dic.get(lis[-1])就是【{(对应的右半边括号}】),#因为要保证lis对称,所以dic.get(lis[-1])一定对称于lis最右侧的符号,如果i刚好等于dic.get(lis[-1]),说明符号对称,说明符号合理,否则不合理return False else: #符号刚好对称了,那就删除lis最右侧的符号,如果符号全部对称,lis结果就被删除光了。print('lis_before_pop is:',lis)lis.pop()print('lis_after_pop is:', lis)if len(lis) == 0:print('lis_last is:', lis)return True else:return False my = Solution()
a = my.isValid('{[]}')
print(a)i_keys is: {
i_keys is: [
i_dic is: ]
lis is: ['{', '[']
len(lis) is: 2
dic.get(lis[-1]) is: ]
lis_before_pop is: ['{', '[']
lis_after_pop is: ['{']
i_dic is: }
lis is: ['{']
len(lis) is: 1
dic.get(lis[-1]) is: }
lis_before_pop is: ['{']
lis_after_pop is: []
lis_last is: []
True
[Finished in 0.9s]'''
缺失数字
给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。示例 1:
输入: [3,0,1]
输出: 2示例 2:
输入: [9,6,4,2,3,5,7,0,1]
输出: 8说明:
你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?
'''
#方法1:通过
#思路:缺失的那个数字加上给的数组num刚好就是完整的从0到n的一个数组。利用这个公式就可以了。
class Solution(object):def missingNumber(self, nums):""":type nums: List[int]:rtype: int"""n = len(nums)full_sum = n*(n+1)//2 #从1到n之和的数学公式part_sum = sum(nums)lost_num = full_sum - part_sumreturn lost_nummy = Solution()
a = my.missingNumber([9,6,4,2,3,5,7,0,1])
print(a)8
[Finished in 0.7s]
LeetCode 其他部分 简单 Python实现相关推荐
- python的代码有哪些_简单python代码类型有哪些?
简单python代码类型有哪些? 简单python代码类型有: 1.[背景] 最近,派大星想要减肥,他决定控制自己的饮食,少吃一点蟹黄堡. 海绵宝宝为了帮助好朋友派大星,和派大星一起制定了一个饮食游戏 ...
- 1-3.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之三
在1-1.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之一 基础上进行如下操作: 所有路由不能全部都在myDjango下的urls.py路由文件中, ...
- python在docx指定位置插表格_超简单Python将指定数据插入到docx模板指定位置渲染并保存...
超简单Python将指定数据插入到docx模板渲染并生成 最近有一个需求,制作劳动合同表,要从excel表格中将每个人的数据导入到docx劳动合同中,重复量很大,因此可以使用python高效解决.为了 ...
- 简单python脚本实例-python脚本例子
广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 简单python脚本:注:1.python 变量不需要$2.for里面的 ...
- 简单 python 小说爬虫 ultimate
简单 python 小说爬虫 想爬就爬 带txt配置文件 day01(半成品) 划掉 - day02(成品) 书名 史上第一剑修 笔趣阁 url代码里找 ####################### ...
- 学简单python好学吗_python好学吗语法简单吗举个例子
pythonPython (发音:[ 'paiθ()n; (US) 'paiθn ]n.蟒蛇,巨蛇 ),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的 ...
- 学简单python好学吗_python好学吗? 语法简单吗? 举个例子?
2009-07-13 回答 pythonPython (发音:[ 'paiθ(ə)n; (US) 'paiθɔn ]n.蟒蛇,巨蛇 ),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完 ...
- 简单python爬虫爬取游戏wiki立绘
简单python爬虫爬取游戏wiki立绘 玩二次元手游是感叹美少女立绘真好看啊,可惜就是抽不到,于是看到b站wiki上有角色立绘,就写了个爬虫准备将立绘趴下来欣赏(舔). 本人爬虫的技术只算是初学,代 ...
- 派大星python代码,简单python代码类型有哪些?
简单python代码类型有哪些? 简单python代码类型有: 1.[背景] 最近,派大星想要减肥,他决定控制自己的饮食,少吃一点蟹黄堡. 海绵宝宝为了帮助好朋友派大星,和派大星一起制定了一个饮食游戏 ...
最新文章
- Maven 传递性依赖
- 傅盛:AI是企业弯道超车的机会,大家在同一起跑线上
- python 处理 json 四个函数dumps、loads、dump、load的区别
- RTMPdump(libRTMP) 源代码分析 7: 建立一个流媒体连接 (NetStream部分 2)
- 如何将自定义数据源集成到Apache Spark中
- 陇东学院c语言程序设计,C语言程序设计
- 缺失值填充2——python 热卡填充(Hot deck imputation)、冷卡填充(Cold deck imputation)
- 为何 iOS 越来越偏爱 Swift?
- 闲聊Framebuffer
- 基于FTP4J组件的FTP操作客户端
- PHP Mysql or条件排序问题
- NAS个人云存储服务器搭建
- Webcontent 和WebRoot的区别
- SVN提交报错: txn-current-lock拒绝访问。
- 云课堂计算机课病毒及安全设置答案,智慧职教云课堂PC端
- 百度SRE面经-为三面攒人品
- 特征选择: 卡方检验、F 检验和互信息
- 计算机windows无法加载怎么办,win7开机提示由于系统注册表文件丢失或损坏因此无法加载怎么办...
- 流程图讲解_雅思经典流程图+地图题小作文练习,详细讲解+精选范文!!
- Windows PyQt5安装说明