leetcode67.二进制求和

java 复制代码
public class Solution {
    public String addBinary(String a, String b) {
        StringBuilder result = new StringBuilder();
        int i = a.length() - 1;
        int j = b.length() - 1;
        int carry = 0;
        
        while (i >= 0 || j >= 0 || carry != 0) {
            int sum = carry;
            if (i >= 0) {
                sum += a.charAt(i--) - '0';  // 转换为数字
            }
            if (j >= 0) {
                sum += b.charAt(j--) - '0';  // 转换为数字
            }
            
            // 使用位运算计算当前位和进位
            result.append(sum & 1);        // 当前位
            carry = (sum >> 1) & 1;        // 进位
        }
        
        return result.reverse().toString();
    }
}    
相关推荐
sp428 分钟前
白话 LRU 缓存及链表的数据结构讲解(一)
算法
_不会dp不改名_1 小时前
leetcode_42 接雨水
算法·leetcode·职场和发展
Swaggy T1 小时前
自动驾驶轨迹规划算法——Apollo EM Planner
人工智能·算法·自动驾驶
野生的编程萌新2 小时前
从冒泡到快速排序:探索经典排序算法的奥秘(二)
c语言·开发语言·数据结构·c++·算法·排序算法
iLoyalty2 小时前
防御保护15
算法·哈希算法
weixin_307779132 小时前
VS Code配置MinGW64编译backward库
开发语言·c++·vscode·算法
花开富贵ii3 小时前
代码随想录算法训练营四十三天|图论part01
java·数据结构·算法·深度优先·图论
weixin_307779134 小时前
AWS Lambda解压缩S3 ZIP文件流程
python·算法·云计算·aws
code小毛孩5 小时前
leetcode hot100数组:缺失的第一个正数
数据结构·算法·leetcode
legendary_bruce11 小时前
【22-决策树】
算法·决策树·机器学习