news 2026/7/24 19:35:26

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kimi LeetCode 3677. 统计二进制回文数字的数目 Rust实现

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

```rust
impl Solution {
pub fn count_binary_palindromes(n: i64) -> i32 {
if n == 0 {
return 1;
}

let mut count: i64 = 1; // 0 是回文数

// 获取 n 的二进制位数(不含前导零)
let m = 64 - n.leading_zeros() as i32;

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

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

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

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

// 将左半部分镜像到右边,构造完整的回文数
while left > 0 {
palindrome = (palindrome << 1) + (left & 1);
left >>= 1;
}

if palindrome <= n {
count += 1;
}

count as i32
}
}
```

核心思路

步骤 说明
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)`

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/24 19:34:29

《绝区零》3.0版本卡池流水分析:多平台数据对比与运营策略

这次我们来看《绝区零》3.0版本诺姆&#xff06;千夏卡池的流水表现。作为米哈游的最新力作&#xff0c;《绝区零》自上线以来就备受关注&#xff0c;每个版本的卡池流水都是玩家和行业观察者重点关注的指标。这次3.0版本的双角色卡池在各大服务器表现如何&#xff0c;是否达到…

作者头像 李华
网站建设 2026/7/24 19:33:23

中兴光猫解锁终极指南:3步免费开启高级权限

中兴光猫解锁终极指南&#xff1a;3步免费开启高级权限 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 还在为无法深度配置中兴光猫而烦恼吗&#xff1f;zteOnu这款开源工具能帮你一键…

作者头像 李华
网站建设 2026/7/24 19:32:54

2026年AI Agent平台OpenClaw架构解析与实战测评

1. 2026年AI Agent平台发展现状2026年Q2的AI Agent领域已经进入成熟期&#xff0c;各类平台呈现出明显的差异化竞争态势。根据最新行业报告显示&#xff0c;全球AI Agent市场规模已达到287亿美元&#xff0c;年增长率保持在62%以上。这个领域的快速发展主要得益于三个关键因素&…

作者头像 李华
网站建设 2026/7/24 19:32:48

终极AMD Ryzen性能调试指南:免费开源SMU调试工具完全解析

终极AMD Ryzen性能调试指南&#xff1a;免费开源SMU调试工具完全解析 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:/…

作者头像 李华
网站建设 2026/7/24 19:31:55

计算机毕业设计之网上选课系统

网上选课是学校必不可少的一个部分。在学生不断增加的整个过程中&#xff0c;网上选课担负着最重要的角色。为满足如今日益复杂的管理需求&#xff0c;各类课程信息管理程序也在不断改进。本课题所设计的网上选课系统&#xff0c;使用B/S架构&#xff0c;Node.js语言进行开发&a…

作者头像 李华
网站建设 2026/7/24 19:31:17

3分钟解锁音乐自由:ncmdump解密转换实战指南

3分钟解锁音乐自由&#xff1a;ncmdump解密转换实战指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾为网易云音乐下载的歌曲只能在特定平台播放而烦恼&#xff1f;ncmdump作为一款专业的NCM格式解密工具&#xff0c;能够…

作者头像 李华