Add Binary

来源:互联网 发布:淘宝补差价 编辑:程序博客网 时间:2024/04/30 07:34

把短的串添加0变为一样长度的字符串。

public class Solution {public String addBinary(String a, String b) {// Start typing your Java solution below// DO NOT write main() functionint len_a = a.length();int len_b = b.length();if (len_a == 0 && len_b == 0)return null;if (len_a == 0)return b;if (len_b == 0)return a;int max;StringBuilder sb = new StringBuilder();StringBuilder ret = new StringBuilder();if (len_a < len_b) {for (int i = 0; i < len_b - len_a; i++)sb.append(0);sb.append(a);max = len_b;a = sb.toString();} else if (len_a > len_b) {for (int i = 0; i < len_a - len_b; i++)sb.append(0);sb.append(b);max = len_a;b = sb.toString();} else {max = len_a;}int[] c = new int[max];int t = 0;int i;for (i = 0; i < max; i++) {char ca = a.charAt(max - i - 1);char cb = b.charAt(max - i - 1);if (ca == '1' && cb == '1') {c[i] = t;t = 1;}if ((ca == '1' && cb == '0') || (ca == '0' && cb == '1')) {c[i] = (t + 1) % 2;if (t == 0)t = 0;elset = 1;}if (ca == '0' && cb == '0') {c[i] = t;t = 0;}}if (t == 1) {ret.append(1);}for (i = max - 1; i >= 0; i--)ret.append(c[i]);return ret.toString();}public static void main(String[] args) {Solution aa = new Solution();System.out.println(aa.addBinary("11", "1"));}}

原创粉丝点击