Add Binary
来源:互联网 发布:淘宝已付款未发货 编辑:程序博客网 时间:2024/04/30 05:30
从末尾开始相加,本位和进位,得到的本位直接替换掉长串的那一位;如果进位==0且短串已全部遍历完,则跳出循环;
跳出循环后,再判断进位是否>0,大于的补上1。
注意:
1.不能用long,因为字符串的长度方法返回的是int
2.char转化为int,int i = c - '0',ASCII码相减
3. StringBuilder的replace函数,见API
public String addBinary(String a, String b) { int l1 = a.length()-1; int l2 = b.length()-1; int cha = Math.abs(l1-l2); StringBuilder longStr = new StringBuilder(); StringBuilder shortStr = new StringBuilder(); if(l1 < l2){ longStr = new StringBuilder(b); shortStr = new StringBuilder(a); }else{ longStr = new StringBuilder(a); shortStr = new StringBuilder(b); } int jin = 0; int cur = 0; int maxLen = longStr.length()-1; for(int i = maxLen;i>=0;i--){ int lc = longStr.charAt(i)-'0'; int sc = 0; if(i-cha >= 0){ sc = shortStr.charAt(i-cha)-'0'; } cur = (lc+sc+jin)%2; if(lc+sc+jin > 1){ jin = 1; }else{ jin = 0; } longStr.replace(i, i+1, cur+""); if((i-cha) < 0 && jin == 0)break; } if(jin > 0){ longStr.replace(0, 0, "1"); } return longStr.toString(); }
0 0
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- 在Mac+LDT中搭建quick-cocos2d-x的lua开发环境
- NSLog的宏定义改进版本
- lte 下行链路峰值100mbps计算方法
- dom4j操作xml文件
- MongoDB基本命令用
- Add Binary
- *usaco 2002 月赛 Rebuilding Roads 小结
- 中央气象台api接口
- 一种低效但逻辑简单清晰的Delaunay三角网生成算法
- 关闭 ubuntu System program problem detected
- 题目1108:堆栈的使用
- Java Object Initialization
- 书目记录
- linux时钟机制(二)-时钟初始化