LeetCode---67. Add Binary
阿新 • • 發佈:2018-12-13
LeetCode—67. Add Binary
題目
思路及解法
要注意兩點: 1.兩個字串有可能不是等長的,這樣在相加時就可能出現空指標的問題,所以首先要把較短的字串左端補零,將兩個字串補位等長。 2.字串charAt操作是從字串的最左端開始操作的,也就是二進位制的最高位,所以相加完成後不要忘記reverse
程式碼
class Solution { public String addBinary(String a, String b) { int aLen=a.length(), bLen=b.length(); int maxLen = Math.max(aLen, bLen); int tempA, tempB; int carry=0, val=0; StringBuffer sb = new StringBuffer(); for(int i=0; i<maxLen; i++){ tempA = aLen>i ? a.charAt(aLen-i-1)-'0' : 0; tempB = bLen>i ? b.charAt(bLen-i-1)-'0' : 0; val = (tempA + tempB + carry) % 2; carry = (tempA + tempB + carry) / 2; sb.append(val + ""); } return (carry==1) ? "1"+sb.reverse() : sb.reverse().toString(); } }