leetcode 67.二進制求和

67.二進制求和

執行用時 :3 ms, 在所有 Java 提交中擊敗了60.62%的用戶

將每一位數對應並相加,再加上進位(cout),cout只需要將這一位的結果除以2即可 ( 2/2 == 1 , 1/2==0 , 0/2 == 0 ) ,最後將結果mod 2加入到StringBuilder並反轉輸出

class Solution {
   public String addBinary(String a, String b) {
        int al=a.length()-1;
        int bl=b.length()-1;
        StringBuilder stringBuilder=new StringBuilder();
        int cout=0;
        int t=0;
        for (int i = al, j=bl; i>=0||j>=0 ; i--,j--) {
            int l=i>=0?a.charAt(i)-'0':0;
            int r=j>=0?b.charAt(j)-'0':0;
            t=l+r+cout;
            cout=t/2;
            stringBuilder.append(t%2);
        }
        if(cout==1)
        stringBuilder.append(cout);

        return stringBuilder.reverse().toString();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章