算法学习(Java实现之字符串篇)····二进制求和
2015-06-01 21:09
731 查看
给定两个二进制字符串,返回他们的和(用二进制表示)。
样例
a =
b =
返回
样例
a =
11
b =
1
返回
100
public class Solution { /** * @param a a number * @param b a number * @return the result */ public String addBinary(String a, String b) { // Write your code here //若字符串a的长度小于字符串b的长度,两个字符串交换 if(a.length() < b.length()){ String temp = a; a =b; b = temp; } int la = a.length()-1; int lb = b.length()-1; int carries = 0;//进位 String res = "";//结果值 while(lb >= 0){//先依据短字符串的长度依次计算 int sum = (int)(a.charAt(la)-'0')+(int)(b.charAt(lb)-'0')+carries; res = String.valueOf(sum%2)+res; carries =sum/2; la--; lb--; } while(la>=0){//再依据长字符串的长度依次计算 int sum = (int)(a.charAt(la)-'0')+carries; res = String.valueOf(sum%2)+res; carries =sum/2; la--; } if (carries==1){ res ="1"+res;//计算最后的进位 } return res; } }
相关文章推荐
- 泛型
- 跟我学Spring系列链接
- MyEclipse快捷键大全
- JDK源码学习之String
- struts2总结三:struts2配置文件struts.xml的简单总结
- 会员卡管理系统技术解析 番外篇(二)MyEclipse安装与搭建
- Java为什么不支持多继承
- java内存堆和栈
- Java for LeetCode 132 Palindrome Partitioning II
- springMVC
- Java学习工具类
- 从零开始学习算法(Java实现)~~~~之字符串篇~~~判断两个字符串是否是颠倒字母顺序构成的
- Java foreach用法
- java设计模式(一)---工厂模式
- Java中的运行期类型鉴定
- Java log4j的环境搭建
- 教你如何查看java错误
- Java动态绑定机制的内幕解惑
- Java参数检查
- 集合框架(一) 层次体系结构