讨论社区

67题二进制求和

public static String addBinary(String a, String b) {

     if(a=="0"||b=="0") {

         if(a=="0") {

              return b;

         }else {

             return a;

         }

     }

     if(a.length()>b.length()) {//保证a的长度小

         String temp=a;

         a=b;

         b=temp;

     }

     for(int i=1;i<=b.length()-a.length();i++) {

         a="0"+a;

     }

     int t=0;

     StringBuilder B = new StringBuilder(b);

     for(int i=a.length()-1;i>=0;i--) {

         if(a.charAt(i)=='1'&&b.charAt(i)=='1') {

             if(t==1) {

                 B.setCharAt(i, '1');

             }else {

                 t=1;

                 B.setCharAt(i, '0');

             }

         }else if(a.charAt(i)=='1'&&b.charAt(i)=='0') {

             if(t==1) {

                 B.setCharAt(i, '0');

             }else {

                 B.setCharAt(i, '1');

             }

         }else if(a.charAt(i)=='0'&&b.charAt(i)=='1') {

             if(t==1) {

                 B.setCharAt(i, '0');

             }else {

                 B.setCharAt(i, '1');

             }

         }else if(a.charAt(i)=='0'&&b.charAt(i)=='0') {

             if(t==1) {

                 B.setCharAt(i, '1');

                 t=0;

             }else {

                 B.setCharAt(i, '0');

             }

         }

     }

     if(B.charAt(0)=='0') {

         return b="1"+B.toString();

     }else {

         return B.toString();

     }

}

自己电脑上输入“0”“0”得到结果是“0”,一提交就报错说结果是“10”

0 人关注了该问题 关注

0

776854974m • 2周前

建议再仔细调试一下代码。刷题学习中遇到问题,可以阅读题解解决做题中的一些困惑,也可至 力扣圈子 进行题目交流,以获得更好的支持哟~

0 个讨论

您需要登录后才可回复
您需要登录后才可以回复