Add to List 67
来源:互联网 发布:g76车锥螺纹编程实例 编辑:程序博客网 时间:2024/06/17 17:22
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
实值相加会有问题,超过int上限就会报错,代码如下:
class Solution {public: string addBinary(string a, string b) { string c_string;stringstream c;int numa = 0;int numb = 0;int output;int lengtha = a.size();int lengthb = b.size();for (int i = lengtha; i > 0; i--){int d = pow(2, i - 1);numa = numa + (a[i - 1]-'0') * pow(2,lengtha-i);}for (int i = lengthb; i > 0; i--){numb = numb + (b[i - 1] - '0') * pow(2,lengthb-i);}output = numa + numb;if (numa == 0&&numb==0)return "0";while (output != 0){c << (output%2);output >>= 1;}c_string = c.str();stringstream trans_string;int lengthstring = c_string.size();int i = 0;int j = lengthstring;while (i<lengthstring){trans_string << c_string[j-1];i++;j--;}c_string = trans_string.str();return c_string; }};采用补位逐位运算:
class Solution {public: string addBinary(string a, string b) { string ret; int la=a.size(); int lb=b.size(); int s=0; int sj=0; int add='0'; int lmax=max(la,lb); for(int i=0;i<lmax;i++) { char ca=la>i?a[la-1-i]:'0'; char cb=lb>i?b[lb-1-i]:'0'; char s=(ca==cb?'0':'1'); char sj=(s==add?'0':'1'); if(s==add&&add=='1'||ca=='1'&&cb=='1') add='1'; else add='0'; ret+=sj; } if(add=='1') ret+=add; reverse(ret.begin(),ret.end()); return ret; }};
阅读全文
0 0
- Add to List 67
- Add to List 67. Add Binary
- TortoiseSVN add to ignore list
- Add to List 77. Combinations
- LeetCode 143 Reorder List Add to List
- leetcode148~Sort List Add to List
- Add to List 147. Insertion Sort List
- LeetCode: Add to List 148. Sort List
- Android Add To System Share List
- 414. Third Maximum Number Add to List
- 53. Maximum Subarray Add to List
- leetcode41~First Missing Positive Add to List
- leetcode 500 Keyboard Row Add to List
- Leetcode 494. Target Sum Add to List
- 461.Hamming Distance Add to List
- 310. Minimum Height Trees Add to List
- 476. Number Complement Add to List
- 53. Maximum Subarray Add to List
- SpringMVC重要接口(二)HandlerMethodReturnValueHandler
- 2017年主流企业的android面试题
- 【脚本语言系列】关于Python集成开发环境,你需要知道的事
- PowerDesigner使用过程中遇到的问题
- iOS开发笔记
- Add to List 67
- private static final long serialVersionUID = ??? 的作用
- 生成上传图片的文件
- 图像配准的变换操作
- Linux 软件看门狗 watchdog
- 如何在Win7中安装Python的.whl扩展包
- C++拷贝构造函数详解
- Oracle grid infrastructure 卸载
- 数据库的多表查询