题目 1.

https://leetcode.com/problems/add-binary/

leetcode -- 二进制

题目简介:两个二进制字符串,求他们的和,也用二进制表示

题解:首先把两个字符串中长的赋值x,短的y。  对短的y逆序遍历,将x与y后面几位分别相加值存起来,暂时不进位。得到新字符串C, 对C进行进位处理,弄一个进位标识符。

class Solution {
    public String addBinary(String a, String b) {
        String x,y;
        if(a.length() >= b.length()){
            x = a;
            y = b;
        }else{
            x = b;
            y = a;
        }
        
        String c ="";
        for(int i=0;i<y.length();i++){
            
            int addxy = (x.charAt(x.length()-i-1)-'0') +(y.charAt(y.length()-i-1)-'0');
            System.out.println(y.charAt(y.length()-i-1));
            c = String.valueOf(addxy)+c;
        }
        c = x.substring(0,x.length()-y.length()) +c;

        int add = 0;
        String d = "";
        
        
        //对C进行进位处理
        for(int i=c.length()-1;i>=0;i--){
            
            if(c.charAt(i) == '2' && add == 0){
                d = "0"+d;
                add = 1;
            }else if(c.charAt(i) == '2' && add == 1){
                d = "1"+d;
                add = 1;
            }else if(c.charAt(i) == '1' && add == 1){
                d = "0"+d;
                add = 1;
            }else if(c.charAt(i) == '1' && add == 0){
                d = "1"+d;
                add = 0;
            }else if(c.charAt(i) == '0'){
                d = String.valueOf(add)+d;
                add = 0;
            }
        }
        //超出部分继续进位
        if(add == 1)d = "1"+d;
        
        return d;
        
    }
}

 

相关文章:

  • 2021-09-22
  • 2021-08-26
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-31
  • 2021-10-06
  • 2021-12-13
  • 2021-09-04
  • 2021-12-25
  • 2021-09-24
  • 2021-05-04
相关资源
相似解决方案