题解 | #二进制求和#

二进制求和

http://www.nowcoder.com/practice/1620262056c24c0e96de32fb261703d0

import java.util.*;
public class Solution {
    public String binaryAdd (String A, String B) {
        String res="";
        char[] a=A.toCharArray();
        char[] b=B.toCharArray();
        int lengthA=a.length,lengthB=b.length;
        Stack<Integer> stack=new Stack<>(); //存放结果
        int carry=0; //表示进位
        //只有A、B中每一个数都遍历完,且进位为0,循环才结束
        while(lengthA!=0||lengthB!=0||carry!=0){ 
            int tmpA=(lengthA==0)?0:(a[--lengthA]-'0'); 
            int tmpB=(lengthB==0)?0:(b[--lengthB]-'0');
            int sum=tmpA+tmpB+carry;
            carry=sum/2;
            stack.push(sum%2);
        }
        while(!stack.isEmpty()){
            res+=stack.pop();
        }
        return res;
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务