leetcode Add Binary
来源:互联网 发布:数据派发管理制度 编辑:程序博客网 时间:2024/06/06 10:59
https://oj.leetcode.com/problems/add-binary/
这个题目不是他别难,但要把string转成int[]却费了一番功夫。当然不转也可以。我的程序一如既往的笨拙。
当中有个while()循环。有一些专门对两个链表或数组操作的题目。
需要注意的是有的时候是或(||)符号,有的时候是并且符号(&&)
主要是看这两个链表要不要一定出现。比如如果是比较的话,确一个就没办法比较,所以用&&
如果是求和,缺一个也可以。所以用||。
public class Solution { public String addBinary(String a, String b) { if(a==null)return b; if(b==null)return a; if(a==null&&b==null)return null; char[]aa=a.toCharArray(); char[]bb=b.toCharArray(); int len1=aa.length; int len2=bb.length; int[]aaa=new int[len1]; int[]bbb=new int[len2]; for(int i=0;i<len1;i++){ aaa[i]=aa[i]-'0'; } for(int j=0;j<len2;j++){ bbb[j]=bb[j]-'0'; } StringBuffer sb=new StringBuffer(); int i=len1-1; int j=len2-1; int carry=0; int sum=0; while(i>=0||j>=0){ if(i>=0){ sum+=aaa[i]; i--; } if(j>=0){ sum+=bbb[j]; j--; } sum+=carry; sb.append(sum%2); carry=sum/2; sum=0; } if(carry==1){ sb.append(1); } return sb.reverse().toString(); }}
比如这道题
https://oj.leetcode.com/submissions/detail/15398174/
让你合并两个已经排好序的链表。
注意while循环里的符号是&&。
实际上写的又麻烦了,可以继续改进。
public class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if(l1==null)return l2; if(l2==null)return l1; if(l1==null&&l2==null)return null; ListNode ret=new ListNode(-1); ListNode p1=l1; ListNode p2=l2; ListNode pp=ret; while(p1!=null&&p2!=null){ if(p1.val<p2.val){ pp.next=p1; p1=p1.next; pp=pp.next; }else{ pp.next=p2; p2=p2.next; pp=pp.next; } }if(p1!=null)<span style="white-space:pre"></span> pp.next=p1;<span style="white-space:pre"></span> <span style="white-space:pre"></span>if(p2!=null)<span style="white-space:pre"></span> pp.next=p2;<span style="white-space:pre"></span> return ret.next; }}
0 0
- 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
- [leetcode]Add Binary
- LeetCode-Add Binary
- [leetcode] Add Binary
- LeetCode - Add Binary
- leetcode:Add Binary
- UVA 11646 - Athletics Track(计算几何)
- poj1185 三维状压dp
- 项目管理的通俗理解
- extjs5备忘(2)
- 使用porttunnel进行内外网端口映射
- leetcode Add Binary
- Linux VPS下SSH常用命令
- Bamboo的windows安装
- 归并排序算法
- 喜羊羊系列之进程与线程
- Android SQLite升级 数据迁移
- WebView 加载 html
- 双缓冲技术(C# GDI)
- 数组-02. 打印杨辉三角(20)