本文主要是介绍leetcode解题方案--067--Add Binary,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目
Given two binary strings, return their sum (also a binary string).
For example,
a = “11”
b = “1”
Return “100”.
分析
二进制相加。考虑进位
class Solution {public static String addBinary(String a, String b) {char[] aa = a.toCharArray();char[] bb = b.toCharArray();if (aa.length<bb.length) {char[] tmp = aa;aa = bb;bb = tmp;}int differ = aa.length-bb.length;int bindex = bb.length-1;int add = 0;while (bindex>=0) {add = bb[bindex]+aa[bindex+differ] +add- 2*'0';aa[bindex+differ] = (char)(add%2+'0');add = add/2;bindex--;}while (add>0 && bindex+differ>=0) {if (aa[bindex+differ] == '1') {aa[bindex+differ] = '0';add = 1;} else {aa[bindex+differ] = '1';add = 0;}bindex--;}if (add == 1) {return "1"+new String(aa);}return new String(aa);}
}
这篇关于leetcode解题方案--067--Add Binary的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!