📆力扣每日计划第一天2020\05\08
⏳练习C++和Python,以仓库来督促👁️
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。
示例 1:
输入:00000000000000000000000000001011
输出:3
解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。
示例 2:
输入:00000000000000000000000010000000
输出:1
解释:输入的二进制串 00000000000000000000000010000000 中,共有一位为 '1'。
示例 3:
输入:11111111111111111111111111111101
输出:31
解释:输入的二进制串 11111111111111111111111111111101 中,共有 31 位为 '1'。
提示:
请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。
在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 3 中,输入表示有符号整数 -3。
进阶:
如果多次调用这个函数,你将如何优化你的算法?
链接:https://leetcode-cn.com/problems/number-of-1-bits 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
SRC_Code:🚀
class Solution
{
public:
int hammingWeight(uint32_t n)
{
n = (n & (0x55555555)) + ((n >> 1) & (0x55555555));
n = (n & (0x33333333)) + ((n >> 2) & (0x33333333));
n = (n & (0x0F0F0F0F)) + ((n >> 4) & (0x0F0F0F0F));
n = (n & (0x00FF00FF)) + ((n >> 8) & (0x00FF00FF));
n = (n & (0x0000FFFF)) + ((n >> 16) & (0x0000FFFF));
return n;
}
};
题目描述
假设你们社团要竞选社长,有两名候选人分别是A和B,社团每名同学必须并且只能投一票,最终得票多的人为社长.
输入描述:
一行,字符序列,包含A或B,输入以字符0结束。
输出描述:
一行,一个字符,A或B或E,输出A表示A得票数多,输出B表示B得票数多,输出E表示二人得票数相等。
输入
ABBABBAAB0
输出
B
SRC_Code:🚀
# -*- coding: UTF-8 -*-
#!/usr/bin/python3
A = 0
B = 0
s = input()
for i in s:
if i == 'A':
A += 1
elif i == 'B':
B += 1
if A == B:
print('E')
elif A > B:
print('A')
else:
print('B')
题目描述:
四舍五入下成功率,大概就是百分之百的样子。
——韩信-逐梦之影
小T喜欢玩数。这天他弄到了一个数n,他玩心大发,他让小s求它的正因数数量。
小s并不会这道题,现在如果你是他,你会怎么做?
小T为了防止小s作弊,他要询问T次。
输入描述:
第一行一个整数T。
后T行每行一个整数n。
输出描述:
T行一个整数代表答案。
输入
1
6
输出
4
说明
6的因数有1 2 3 6共4个
100% 1≤n,T≤104100\% \ 1 \le n,T \le 10^4100% 1≤n,T≤104
SRC_Code:🚀
# -*- coding: UTF-8 -*-
#!/usr/bin/python3
def check(aNum):
count = 0
for i in range(1, aNum + 1):
if aNum % i == 0:
count += 1
return count
T = int(input())
nums = []
for i in range(0, T):
tmp = int(input())
nums.append(tmp)
for i in range(0, T):
tmp = check(nums[i])
print(tmp)