https://leetcode.com/PRoblems/add-binary/
算法Given two binary strings, return their sum (also a binary string).For example,a = "11"b = "1"Return "100".
1) 假设aLen表示string a的长度,那么它的第aLen - 1个元素表示的最低位;string b同2) 用一个flag记录来代表进位
代码public class Solution { public String addBinary(String a, String b) { if (a == null || b == null) { return ""; } if (a.isEmpty()) { return b; } if (b.isEmpty()) { return a; } int s; int flag = 0; StringBuilder sb = new StringBuilder(); int i = a.length() - 1; int j = b.length() - 1; do { if (i >= 0 && j >= 0) { s = a.charAt(i--) - '0' + b.charAt(j--) - '0' + flag * 1; } else if (i >= 0) { s = a.charAt(i--) - '0' + flag * 1; } else { s = b.charAt(j--) - '0' + flag * 1; } flag = s / 2; sb.append(s % 2); } while (i >= 0 || j >= 0); if (1 == flag) { sb.append(1); } return sb.reverse().toString(); }}
新闻热点
疑难解答