社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。
示例 1:
输入:00000000000000000000000000001011
输出:3
解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。
示例 2:
输入:00000000000000000000000010000000
输出:1
解释:输入的二进制串 00000000000000000000000010000000 中,共有一位为 '1'。
示例 3:
输入:11111111111111111111111111111101
输出:31
解释:输入的二进制串 11111111111111111111111111111101 中,共有 31 位为 '1'。
提示:
-3
。进阶:
如果多次调用这个函数,你将如何优化你的算法?
用内置函数.count来计数
class Solution(object):
def hammingWeight(self, n):
"""
:type n: int
:rtype: int
"""
return bin(n).count('1')
输入: candies = [1,1,2,2,3,3]
输出: 3
解析: 一共有三种种类的糖果,每一种都有两个。
最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获得糖果的种类数最多。
示例 2 :
输入: candies = [1,1,2,3]
输出: 2
解析: 妹妹获得糖果[2,3],弟弟获得糖果[1,1],妹妹有两种不同的糖果,弟弟只有一种。这样使得妹妹可以获得的糖果种类数最多。
注意:
1.长度不同肯定不是相同的字母
2.去重后长度不一样肯定不同
3.集合S在集合T中的字母存在数数量不同就肯定不同
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
A = True
if len(s) != len(t):
A = False
else:
if len(set(s)) != len(set(t)):
A = False
else:
for a in set(s):
if s.count(a) != t.count(a):
A = False
break
return A
给定一个单词,你需要判断单词的大写使用是否正确。
我们定义,在以下情况时,单词的大写用法是正确的:
否则,我们定义这个单词没有正确使用大写字母。
示例 1:
输入: "USA"
输出: True
示例 2:
输入: "FlaG"
输出: False
注意: 输入是由大写和小写拉丁字母组成的非空单词。
根据题意把1. 全部字母都是大写,比如"USA"。
2. 单词中所有字母都不是大写,比如"leetcode"。
3. 如果单词不只含有一个字母,只有首字母大写, 比如 "Google"。
表达出来
word==word.upper()
word==word.lower()
word == word.lower().capitalize()
满足其中一个即可,所有用OR链接
class Solution:
def detectCapitalUse(self, word: str) -> bool:
return word==word.upper() or word==word.lower() or word == word.lower().capitalize()
有更加好的思路,或者解题方法评论区留言谢谢
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!