LeetCode AddBinary
来源:互联网 发布:js绑定事件的方法 编辑:程序博客网 时间:2024/06/01 10:33
For example,
a = "11"
b = "1"
Return "100"
.
运行环境:vs2010专业版
实现语言:C语言
char* addBinary(char* a, char* b)
{
bool flag = false;
int a_len = strlen(a);
int b_len = strlen(b);
int ab_diff = a_len>b_len?(a_len-b_len):(b_len-a_len);
static char sa[64];
static char sb[64];
sa[0]=sb[0]='\0';
if(a_len>b_len)
{
strcpy(sa, a);
int i;
for(i=0; i<ab_diff; i++)
strcat(sb,"0");
strcat(sb,b);
}
else
{
strcpy(sb,b);
int i;
for(i=0; i<ab_diff; i++)
strcat(sa,"0");
strcat(sa,a);
}
printf("%s\n%s\n", sa, sb);
for(int i=0; i<strlen(sa); i++)
{
if(flag){
if(sa[strlen(sa)-i-1]=='1' && sb[strlen(sa)-i-1]=='1')
{
sa[strlen(sa)-i-1] = '1';
flag = true;
}
else if(sa[strlen(sa)-i-1]=='0' && sb[strlen(sa)-i-1]=='0')
{
sa[strlen(sa)-i-1] = '1';
flag = false;
}
else
{
sa[strlen(sa)-i-1] = '0';
flag = true;
}
}
else
{
if(sa[strlen(sa)-i-1]=='1' && sb[strlen(sa)-i-1]=='1')
{
sa[strlen(sa)-i-1] = '0';
flag = true;
}
else if(sa[strlen(sa)-i-1]=='0' && sb[strlen(sa)-i-1]=='0')
{
sa[strlen(sa)-i-1] = '0';
flag = false;
}
else
{
sa[strlen(sa)-i-1] = '1';
flag = false;
}
}
}
printf("%s\n%s\n", sa, sb);
if(flag)
{
strcpy(sb,"1");
strcat(sb,sa);
return sb;
}
else
return sa;
}
- LeetCode|AddBinary
- LeetCode AddBinary
- AddBinary[LeetCode]
- AddBinary(leetcode)
- leetCode JavaScript addBinary解析
- addbinary
- AddBinary
- 【LeetCode从零单排】No67.AddBinary
- leetcode67.AddBinary
- LeedCode 之 AddBinary
- leecode-easy-addbinary
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode
- leetcode:
- leetcode:
- 【精彩电影】小鞋子
- Spring框架
- CentOS ISO to USB on Mac OS X
- 让图片水平和竖直方向都居中
- [HBase] LSM树 VS B+树
- LeetCode AddBinary
- 二叉树
- WebView加载完成与显示完成的区别
- Apache Http Server与Tomcat实现负载均衡和集群
- iOS 适用于大写英文的全角转半角
- API网络学习之二SNMP实现
- [XCode] Frame Rectangle 和 Alignment Rectangle 的区别
- 第十六周oj刷题——Problem B: 处理成绩(c++类训练)
- 全角转半角