leetcode:add binary 菜鸟解法
来源:互联网 发布:javascript有map吗 编辑:程序博客网 时间:2024/06/14 20:07
我确实比较水,所以费尽千辛玩苦终于挑了一个好想比较简单的题,结果没想到还是不行...
初始想法:
设两个字符串分别为at和b,然后把他们两个转成整形后相加(每一位有三种可能,0,1,2),然后根据所得结果决定是否要进位,结束后输出字符串。
程序如下所示,能通过几个案例,可是因为整形取值空间不够,所以输入很大时候就没辙了。
class Solution {public: string addBinary(string a, string b) { long long first,second,sum,temp=0;string result="1";char bit[200];char final[200];first = atoi(a.c_str());second = atoi(b.c_str());sum = first + second;sprintf(bit,"%lld",sum); for(int i=strlen(bit)-1;i>=0;i--){if (bit[i]=='2'&&temp==0) {final[i]='0';temp = 1;}else if (bit[i]=='2'&&temp==1) {final[i]='1';}else if (bit[i]=='1'&&temp==1) {final[i]='0';}else if (bit[i]=='1'&&temp==0){final[i]='1';}else if (bit[i]=='0'&&temp==0){final[i]='0';}else if (bit[i]=='0'&&temp==1){final[i]='1';temp = 0;}}final[strlen(bit)]='\0';if(temp=1) result += final;else result = final;return result;}};
为了解决这一问题,我采用遍历字符串然后相加的方式,通过代码如下,感觉上挺烂的,以后会再思考优化方式
class Solution {public: string addBinary(string a, string b) { int big_len,small_len,i=0,j=0,temp=0;string result="1",big,small;char bit[200];char final[200]; if (a.length()>=b.length()){big = a;small = b;big_len = a.length();small_len = b.length();}else{big = b;small = a;big_len = b.length();small_len = a.length();}for(i=big_len-small_len;i<big_len;i++){ bit[i]=big[i]+small[j++]-48;}for(i=0;i<big_len-small_len;i++){ bit[i]=big[i];}bit[big_len]='\0';for(i=strlen(bit)-1;i>=0;i--){if (bit[i]=='2'&&temp==0) {final[i]='0';temp = 1;}else if (bit[i]=='2'&&temp==1) {final[i]='1';}else if (bit[i]=='1'&&temp==1) {final[i]='0';}else if (bit[i]=='1'&&temp==0){final[i]='1';}else if (bit[i]=='0'&&temp==0){final[i]='0';}else if (bit[i]=='0'&&temp==1){final[i]='1';temp = 0;}}final[strlen(bit)]='\0';if(temp==1) result += final;else result = final;return result;}};
0 0
- leetcode:add binary 菜鸟解法
- leetcode:Binary Tree Preorder Traversal菜鸟解法
- Leetcode:Unique Binary Search Trees: 菜鸟解法
- Leetcode:Binary Tree Maximum Path Sum菜鸟解法
- Add Binary问题及解法
- LeetCode: Add Binary
- [Leetcode] Add Binary
- LeetCode Add Binary
- Leetcode: Add Binary
- [Leetcode] Add Binary
- LeetCode : Add Binary
- LeetCode Add Binary
- [LeetCode] Add Binary
- leetcode 58: Add Binary
- leetcode Add Binary
- [LeetCode] Add Binary
- 【leetcode】Add Binary
- [LeetCode]Add Binary
- Git使用方法
- Mysql 比较有用的sql命令
- GDAL应用
- 扁平化设计的历史与发展未来
- 分支-19. 阶梯电价(15)
- leetcode:add binary 菜鸟解法
- MySQL不插入重复数据与删除重复数据
- 你对SQL性能优化知识知多少?
- cocos2d-x像素级触摸处理
- typedef与#define的区别
- cocos2d-x 代码阅读笔记
- printf()中的%...
- 第一次迭代个人总结
- MySQL在大型网站的应用架构演变