LCR 002. 二进制求和

剑指Offer通关

力扣搜索LCR即为剑指Offer的所有题目。

LCR 002. 二进制求和

笨方法:

先将两个string反过来,然后相加。

然后将剩下的长的再补上。

需要注意进位。

java 复制代码
class Solution {
    public String addBinary(String a, String b){
        StringBuffer res = new StringBuffer();
        StringBuffer c = new StringBuffer(a).reverse();
        StringBuffer d = new StringBuffer(b).reverse();
        String Long = c.length()>d.length() ? c.toString() : d.toString();
        int len = Math.min(a.length(), b.length());
        int idx = 0;
        int add = 0;
        for(idx=0;idx<len;idx++){
            if(c.charAt(idx)=='0' && d.charAt(idx)=='0'){
                if(add==0)
                    res.append("0");
                else if(add==1){
                    res.append("1");
                    add = 0;
                }
            }

            else if(c.charAt(idx)=='1' && d.charAt(idx)=='1'){
                if(add == 0){
                    res.append("0");
                    add = 1;
                }
                else if(add == 1){
                    res.append("1");
                    add = 1;
                }
            }
            else{
                if(add==0){
                    res.append("1");
                    add = 0;
                }
                else if(add==1){
                    res.append("0");
                    add = 1;
                }
            }
        }
        for(; idx<Long.length();idx ++){
            if(add == 0)
                res.append(Long.charAt(idx));
            else{
                if(Long.charAt(idx) == '0'){
                    res.append('1');
                    add = 0;
                }
                else res.append('0');
            }
        }
        if(add == 1)
            res.append("1");
        return res.reverse().toString();

    }
}
相关推荐
_lst_18 小时前
linux进程状态
linux·运维·服务器
霍格沃兹测试开发学社-小明18 小时前
AI来袭:自动化测试在智能实战中的华丽转身
运维·人工智能·python·测试工具·开源
MaisieKim_19 小时前
2025年企业文档管理系统全面评测报告
运维·数据库
德育处主任20 小时前
『NAS』轻松获取群晖自带的壁纸
服务器·docker
zzzsde20 小时前
【Linux】基础开发工具(3):编译器
linux·运维·服务器
..空空的人21 小时前
C++基于websocket的多用户网页五子棋 ---- 整合封装服务器模块设计实现
运维·服务器
愚戏师21 小时前
Python3 多线程
linux·运维·服务器·python
n***333521 小时前
linux redis简单操作
linux·运维·redis
n***4431 天前
Node.js HTTP模块详解:创建服务器、响应请求与客户端请求
服务器·http·node.js
2***s6721 天前
【Go】Go语言基础学习(Go安装配置、基础语法)
服务器·学习·golang