算法题之日常刷题 0001

问题1:

实现1:如果没有条件可以用辅助空间 循环

# ls长度为6 含有5个数字的列表 题目说是长度为1001 含有1000个数的列表
# 换汤不换药 罢了 思路正确就可以
ls = [1,2,3,4,3,5]
for i in range(len(ls)):
    for j in range(i+1, len(ls)):
        #将两两者进行异或 判断是否相同
        if (ls[i] ^ ls[j]) == 0:
            print(ls[i])
            break
 

# 消除重复的数
ls = [1,2,3,4,5,5,4,3,2,1,6]
s = 0
for i in range(len(ls)):
    s = s ^ ls[i]

# 结果s = 6
print(s)

问题2:

扫描二维码关注公众号,回复: 15216135 查看本文章

 实现2:

def ProblemThree():
    ls = [1,2,3,4,3,2,1]
    s = 0
    for i in ls:
         s = s ^ i

    print(s)

问题3:

实现3:

def ProblemFour():
    n = 100
    print(bin(n).lstrip("ob"))
    t = 1
    count = 0
    for i in range(len(bin(n).lstrip("0b"))):
        if ((t << i) & n)>>i == 1:
            count += 1
    print(count)
        
if __name__ == "__main__":
    ProblemFour()

猜你喜欢

转载自blog.csdn.net/qq_50709355/article/details/123319554