67. Add Binary

    xiaoxiao2023-03-25  6

    Given two binary strings, return their sum (also a binary string).

    For example, a = "11" b = "1"

    Return "100".

    public class Solution { public String addBinary(String a, String b) { String s=new String(); char c; int temp=0; int lena=a.length(); int lenb=b.length(); lena--; lenb--; while(lena>=0&&lenb>=0){ c=(char)((a.charAt(lena)-'0')+(b.charAt(lenb)-'0')+temp+'0'); if((c-'0')>=2){ temp=1; c=(char)(c-2); } else{ temp=0; } s=c+s; lena--; lenb--; } while(lena>=0){ c=(char)(a.charAt(lena)+temp); if(c=='2'){ temp=1; c='0'; } else{ temp=0; } s=c+s; lena--; } while(lenb>=0){ c=(char)(b.charAt(lenb)+temp); if(c=='2'){ temp=1; c='0'; } else{ temp=0; } s=c+s; lenb--; } if(temp==1) s='1'+s; return s; } } Shorted code in Discuss:

    public class Solution { public String addBinary(String a, String b) { StringBuilder sb = new StringBuilder(); int i = a.length() - 1, j = b.length() -1, carry = 0; while (i >= 0 || j >= 0) { int sum = carry; if (j >= 0) sum += b.charAt(j--) - '0'; if (i >= 0) sum += a.charAt(i--) - '0'; sb.append(sum % 2); carry = sum / 2; } if (carry != 0) sb.append(carry); return sb.reverse().toString(); } }

    转载请注明原文地址: https://ju.6miu.com/read-1203737.html
    最新回复(0)