-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()
有更加好的思路,或者解题方法评论区留言谢谢