当前位置: 首页 > news >正文

Kimi LeetCode 3677. 统计二进制回文数字的数目 Python3实现

这是可以直接提交到 LeetCode 的完整 Python3 实现:

```python
class Solution:
def countBinaryPalindromes(self, n: int) -> int:
if n == 0:
return 1

# 获取 n 的二进制位数(不含前导零)
def get_binary_length(x: int) -> int:
length = 0
while x > 0:
x >>= 1
length += 1
return length

count = 1 # 0 是回文数
m = get_binary_length(n)

# 1. 统计二进制位数小于 m 的所有回文数
# 长度为 i 的二进制回文数个数 = 2^((i-1)//2)
# 首位必须是 1,左半部分(含中间位)有 (i-1)//2 个自由位
for i in range(1, m):
count += 1 << ((i - 1) // 2)

# 2. 统计二进制位数等于 m 且不超过 n 的回文数
mid = m // 2 # 左半部分的长度(奇数时包含中间位)

# 从左半部分的最高位向中间遍历
# 如果 n 的某一位是 1,我们可以把它改成 0,剩下的位可以任意填
for i in range(m - 2, mid - 1, -1):
if n & (1 << i):
# 当前位填 0(比 n 小),剩余可自由填的位数产生的回文数个数
count += 1 << (i - mid)

# 3. 检查 n 本身(或其左半部分生成的回文数)是否 <= n
left = n >> mid # 提取左半部分(含中间位,如果是奇数长度)
# 构造回文数
palindrome = (left >> 1) if m % 2 != 0 else left

while left > 0:
palindrome = (palindrome << 1) + (left & 1)
left >>= 1

if palindrome <= n:
count += 1

return count
```

核心思路

步骤 说明
1. 特判 0 `0` 的二进制是 `"0"`,是回文数
2. 统计短位数回文 长度为 `i` 的二进制回文数,首位必为 1,左半部分(含中间位)有 `(i-1)//2` 个自由位,共 `2^((i-1)//2)` 个
3. 统计同位数回文 从高位到低位遍历 `n` 的左半部分。遇到 `1` 时,将其改为 `0`,剩余自由位可任意填,累加方案数
4. 检查 n 本身 用 `n` 的左半部分构造回文数,若 ≤ n 则计数 +1

复杂度

- 时间:`O(log n)`,只遍历 `n` 的二进制位
- 空间:`O(1)`

http://www.jsqmd.com/news/1237931/

相关文章:

  • 教育类前端交互设计复盘:一个答题组件的七次迭代与最终收敛方案
  • 2026精选:台山制造业领域实力供应厂家深度解析 - 甄选服务推荐
  • 孤能子视角:思维的“波纹”与“场域”:从脑科学、大模型到外星人交流的语言演化论
  • 2026年高明不锈钢/铝合金厂家**:精密加工与表面处理技术领先品牌推荐 - 甄选服务推荐
  • 2026年尾矿库GIS智能系统选型指南:聚焦口碑与实力 - 品牌鉴赏官2026
  • Mathup:便捷 MathML 创作工具,高效实现数学表达式编写与转换!
  • 挑选东宝景区推广优质公司 实用选型方法与行业经验参考 - 热点品牌推荐
  • AI如何自动识别暗标格式废标风险?智能评审项目实践
  • 结构性设计模式(Structural Design Patterns)是面向对象设计模式中的一类
  • 2026无锡可定制化企业网站建设公司**汇总 - 奔跑123
  • 从慢如蜗牛到毫秒响应:一次深度SQL调优的实战复盘
  • 用户行为路径分析:桑基图背后的 SQL 数据准备与清洗
  • 2026年顺德产业带企业实力评估:重庆洲胜物流有限公司的行业价值与决策框架 - 甄选服务推荐
  • 7B 模型量化降本全复盘:FP32 到 INT4 的精度-成本博弈
  • 武汉欧米茄回收价格查询与靠谱回收平台实测**2026年7月最新) - 诚收名表回收平台
  • 2026年三河商业空间装修公司本地靠谱选择实用指南 - 热点品牌推荐
  • Linux 内核调优复盘:单机百万连接场景下的协议栈瓶颈击穿记录
  • 2026实地走访整理 国内塑料造粒机厂家**汇总 - 奔跑123
  • 福建周边找聚氨酯地坪漆源头厂家电话实用参考指南 - 热点品牌推荐
  • 2026优选绵阳比较好的肥肠餐馆:地道风味与匠心传承的老店选择 - 品牌鉴赏官2026
  • 实时大屏项目复盘:从需求沟通到性能优化的全流程记录
  • 2026年 高明本地生活服务品牌**:全能型优选与口碑价值深度解析 - 甄选服务推荐
  • 西安清洗剂优质厂商 本地采购选型实用攻略 - 热点品牌推荐
  • 鸿蒙 ArkTS 实战:Secondhand Book Exchange 从二手书交换站到社区换书应用完整解析
  • 2026年养殖粉碎机源头厂家优质选购实用参考指南 - 热点品牌推荐
  • 2026年7月最新长沙本地大芯板靠谱供应商**清单公示 - 奔跑123
  • 厦门万国回收价格查询和靠谱回收平台实测**2026年7月最新) - 嘉价奢侈品回收平台
  • AI 供应链需求预测:销售数据到补货建议的完整分析链路
  • 鄂西北区域专业的宝骏车发动机批发厂家联系方式查询指引 - 热点品牌推荐
  • 2026淮南房屋渗漏水检测公司口碑榜**推荐-正规防水补漏一站式维修:卫生间/厨房/阳台/屋顶/地下室/屋顶/天沟渗漏水精准测漏补漏上门 - 安佳防水