String:2个字符串相加

2016-05-20  本文已影响487人  敲一手烂代码
public static String addBinary(String a, String b) {
        char[] aArr = a.toCharArray();
        int aIndex = aArr.length - 1;
        char[] bArr = b.toCharArray();
        int bIndex = bArr.length - 1;
        int[] arr = new int[Math.max(aArr.length, bArr.length)];
        int jinwei = 0;
        for (int i = arr.length - 1; i >= 0; i--) {
            if (aIndex >= 0 &&bIndex<0) {
                arr[i] = (aArr[aIndex] - '0' + jinwei) % 2;
                jinwei = (aArr[aIndex--] - '0' + jinwei) / 2;
            }
            if (bIndex >= 0&&aIndex<0) {
                arr[i] = (bArr[bIndex] - '0' + jinwei) % 2;
                jinwei = (bArr[bIndex--] - '0' + jinwei) / 2;
            }
            if (aIndex >= 0 && bIndex >= 0) {
                arr[i] = (aArr[aIndex] - '0' + bArr[bIndex] - '0' + jinwei) % 2;
                jinwei = (aArr[aIndex--] - '0' + bArr[bIndex--] - '0' + jinwei) / 2;
            }
            
        }
        String string = new String();
        for (int i = 0; i < arr.length; i++) {
            string += arr[i];
        }
        return jinwei > 0 ? "1" + string : string;
        
    }
上一篇下一篇

猜你喜欢

热点阅读