1.4的幂
给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。
整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x
方法一:不断除以4
#方法一:不断除以4
def isPowerOfFour(n):
if n==0:
return False
while n!=1:
if n%4!=0:
return False #肯定不是4的幂
n=n//4 #继续除以4
return True
2.找不同
给定两个字符串 s 和 t ,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
方法一:位运算
#方法一:位运算
def findTheDifference(s,t):
res=0 #起始为0 开始异或运算
for i in s:
res^=ord(i) #转换成ASCII码,根据可以交换性质a^b^c=a^c^b
for j in t:
res^=ord(j) #相同的会变成0 最后多出来的跟0异或就是多出来的
return chr(res)
3.汉明距离
两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。
给你两个整数 x 和 y,计算并返回它们之间的汉明距离。
方法一:异或+位运算
#方法一:异或+位运算
def hammingDistance(x,y):
tem=x^y #异或运算,找出其中的1的个数
res=0
while tem:
res+=tem&1 #最右边数字判断
tem>>=1
return res