您的位置:首页 > 其它

LeetCode: Add Binary

2013-03-15 14:01 274 查看
C++:

class Solution {
public:
string addBinary(string a, string b) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (a.size() > b.size()) b = string(a.size()-b.size(), '0') + b;
if (a.size() < b.size()) a = string(b.size()-a.size(), '0') + a;
for (int i = 0; i < a.size(); i++) a[i] += int(b[i]-'0');
int carry = 0;
for (int i = a.size()-1; i >= 0; i--) {
a[i] += carry;
carry = (a[i]-'0') / 2;
if (a[i] > '1') a[i] = '0' + (a[i]-'0') % 2;
}
if (carry) a = '1'+a;
return a;
}
};


java: 填补短string前面零字符串的操作很烦

public class Solution {
public String addBinary(String a, String b) {
int aLen = a.length();
int bLen = b.length();
for (int i = 0; i < Math.abs(aLen - bLen); i++)
{
if (aLen < bLen)
{
a = "0" + a;
}
else
{
b = "0" + b;
}
}
char[] cs1 = a.toCharArray();
char[] cs2 = b.toCharArray();
char[] cs3 = new char[a.length()];
int c = 0;
for (int i = a.length()-1; i >= 0; i--)
{
int tmp = c + (cs1[i] - '0') + (cs2[i] - '0');
c = tmp / 2;
cs3[i] = (char)('0' + tmp % 2);
}
String ans = new String(cs3);
if (c > 0)
{
ans = "1" + ans;
}
return ans;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: