【汉明距离总和】python刷题记录

R4-数与位篇

python 复制代码
class Solution:
    def totalHammingDistance(self, nums: List[int]) -> int:
        #创建计数器
        trie=Counter()
        max_bit=len(bin(max(nums)))-2
        ret=0
        for i,num in enumerate(nums):
            for j in range(max_bit):
                #一位位地取出来
                bit=(num>>j)&1
                if bit:
                    ret+=i-trie[j]
                    trie[j]+=1
                else:
                    ret+=trie[j]
        return ret

ps:

counter的用法

python 复制代码
from collections import Counter

# 初始化一个空的 Counter 对象
trie = Counter()

# 添加一些元素
trie.update(['a', 'b', 'a', 'c', 'b', 'a'])

# 查看每个元素的出现次数
print(trie)  # 输出 Counter({'a': 3, 'b': 2, 'c': 1})

# 获取元素 'a' 的计数
print(trie['a'])  # 输出 3

# 如果元素不存在,返回0
print(trie['d'])  # 输出 0

# 添加更多元素
trie['a'] += 1  # 等同于 trie.update(['a'])
print(trie)  # 输出 Counter({'a': 4, 'b': 2, 'c': 1})

# 获取出现次数最多的元素
print(trie.most_common(1))  # 输出 [('a', 4)]
相关推荐
uhakadotcom1 分钟前
开源:subdomainpy快速高效的 Python 子域名检测工具
前端·后端·面试
爱加班的猫10 分钟前
Node.js 中 require 函数的原理深度解析
前端·node.js
用户81651112639710 分钟前
WWDC 2025 Build a SwiftUI app with the new design
前端
伍哥的传说14 分钟前
Vue 3.5重磅更新:响应式Props解构,让组件开发更简洁高效
前端·javascript·vue.js·defineprops·vue 3.5·响应式props解构·vue.js新特性
阅文作家助手开发团队_山神17 分钟前
第一章: Mac Flutter Engine开发准备工作
前端·flutter
菜牙买菜20 分钟前
Hicharts入门
前端·vue.js·数据可视化
天才测试猿21 分钟前
常见的Jmeter压测问题
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·压力测试
mortimer21 分钟前
一次与“顽固”外部程序的艰难交锋:subprocess 调用exe踩坑实录
windows·python·ai编程
tanxiaomi23 分钟前
数据库索引视角:对比二叉树到红黑树再到B树
数据结构·数据库·b树