zoukankan      html  css  js  c++  java
  • 67. 二进制求和

    给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。
    示例 1:
    输入: a = "11", b = "1"
    输出: "100"
    //感想:今天做了好像有三题吧,现在基本都跳过hard了,不太愿意去想,还看了并发的一些东西,看的真让人头大,全是一些源码的东西,还有几分钟就要去锻炼了,想想还是写篇水文吧,刚刚做完这题,基本不太难,很像那种类似的题目,这种类型的题目感觉还是挺多的,就是这种加法的链表的这种感觉,就是会感觉比较麻烦,因为一般这种题目加的类型都比较怪异,可能需要处理,比如两个长度不一样啊这种问题。

    //思路:这道题我一开始想的是什么两个字符串的长度处理一样,分别来慢慢细化,还是觉得写起来太麻烦,我就去看了一下答案,发现答案都是将字符串的长度给对齐,我觉得好low,不想这么做,然后我自己觉得应该可以,就写了,确实要精简很多,感觉看上去比较舒服,就是当你越界的时候我就让你为0,用一个3目运算符就搞定了,还是可以的。

    下面是代码:有什么问题可以给我留言,知道的一定给你解释。

     1 class Solution {
     2     public String addBinary(String a, String b) {
     3         StringBuilder res=new StringBuilder();
     4         int m=a.length();
     5         int n=b.length();
     6         int i=m-1;
     7         int j=n-1;
     8         int carry=0;
     9         while(i>=0||j>=0)
    10         {
    11             
    12             int x=(i>=0)?a.charAt(i)-'0':0;
    13             int y=(j>=0)?b.charAt(j)-'0':0;
    14             i--;
    15             j--;
    16             int sum=x+y+carry;
    17             res.append(sum%2);
    18             carry=sum/2;
    19             
    20         }
    21         if(carry!=0)
    22             res.append(carry);
    23         res.reverse();
    24         return res.toString();
    25         
    26     }
    27 }
    面是代码:有什么问题可以给我留言,知道的一定给你解释。
    [Miàn shì dàimǎ: Yǒu shé me wèntí kěyǐ gěi wǒ liúyán, zhīdào de yīdìng gěi nǐ jiěshì.]
    Face is the code: What is the problem you can give me a message, you must know the explanation.
  • 相关阅读:
    Redis 学习(二十)服务器
    Redis 学习(十八)连接
    Redis学习(十七) 脚本
    Redis学习(十六)事务
    Redis学习(十四) 发布订阅
    python中如何使用requests模块下载文件并获取进度提示?
    Python实例获取mp3文件的tag信息
    python 视频处理,提取视频相关帧,读取Excel
    爬虫数据采集技术趋势-智能化解析
    Python中文转拼音代码(支持全拼和首字母缩写)
  • 原文地址:https://www.cnblogs.com/cold-windy/p/11761172.html
Copyright © 2011-2022 走看看