# Leetcode 67:Add Binary(二進制求和)

Leetcode 67:Add Binary(二進制求和)

(python、java) 公眾號:愛寫bug

Given two binary strings, return their sum (also a binary string).

The input strings are both non-empty and contains only characters 1 or 0.

給定兩個二進制字符串辨赐,返回他們的和(用二進制表示)掂咒。

輸入為非空字符串且只包含數(shù)字 10客年。

Example 1:

Input: a = "11", b = "1"
Output: "100"

Example 2:

Input: a = "1010", b = "1011"
Output: "10101"

解題思路(Java):

? Java:由于Java語言不像 C/C++ 屡谐,Java字符串 String 不可變筷登,比較字符串不能用 “=” ,”=“ 會比較字符串是否為同一個對象先舷,而不是比較字符串內(nèi)容是否相同鹰祸。StringBuilder 可操作性較好,可用來記錄每一位數(shù) 相加后的最終值密浑。

? 所以這道題輸入字符串可利用 chatAt() 方法(用于返回指定索引處的字符。索引范圍為從 0 到 length() - 1粗井。)轉(zhuǎn)化為char字符尔破,減去字符 ‘0’ ,得 int 型數(shù)值 0 或 1 浇衬,分別與sum累加 懒构。

java:

class Solution {
    public String addBinary(String a, String b) {
        int i=a.length()-1,j=b.length()-1,tmp=0,sum;
        StringBuilder str=new StringBuilder();
        while (i>=0||j>=0){
            sum=tmp;
            if(i>=0) sum += a.charAt(i--)- '0';
            if(j>=0) sum += b.charAt(j--)- '0';
            tmp=sum/2;//tmp記錄是否進一位
            str.append(sum%2);//sum%2得余數(shù),即為該位 最終數(shù)字
        }
        if(tmp!=0) str.append(tmp);
        return str.reverse().toString();//將 StringBuilder 所得倒置后即為答案耘擂,轉(zhuǎn)為 String返回
    }
}

解題思路(python3):

? python3明顯靈活很多:

bin()函數(shù) -- 返回一個整數(shù) int 或者長整數(shù) long int 的二進制表示胆剧。

  • 返回的數(shù)值是以0b開頭,表明返回的數(shù)值是二進制

int() 函數(shù)用于將一個字符串或數(shù)字轉(zhuǎn)換為整型醉冤。

? class int(x, base=10)

  • x -- 字符串或數(shù)字秩霍。
  • base -- 進制數(shù),默認十進制蚁阳。(指定base為非十進制時铃绒,x 需以字符串形式傳入)

python3:

class Solution:
    def addBinary(self, a: str, b: str) -> str:
        """
        :type a: str
        :type b: str
        :return: str
        """
        return bin(int(a,2)+int(b,2))[2:] #[2:]從第三個元素開始截取,忽略 0b
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末螺捐,一起剝皮案震驚了整個濱河市颠悬,隨后出現(xiàn)的幾起案子矮燎,更是在濱河造成了極大的恐慌,老刑警劉巖赔癌,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诞外,死亡現(xiàn)場離奇詭異,居然都是意外死亡灾票,警方通過查閱死者的電腦和手機峡谊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铝条,“玉大人靖苇,你說我怎么就攤上這事“噻郑” “怎么了贤壁?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長埠忘。 經(jīng)常有香客問我脾拆,道長,這世上最難降的妖魔是什么莹妒? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任名船,我火速辦了婚禮,結(jié)果婚禮上旨怠,老公的妹妹穿的比我還像新娘渠驼。我一直安慰自己,他們只是感情好鉴腻,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布迷扇。 她就那樣靜靜地躺著,像睡著了一般爽哎。 火紅的嫁衣襯著肌膚如雪蜓席。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天课锌,我揣著相機與錄音厨内,去河邊找鬼。 笑死渺贤,一個胖子當著我的面吹牛雏胃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播志鞍,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼丑掺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了述雾?” 一聲冷哼從身側(cè)響起街州,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤兼丰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后唆缴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鳍征,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年面徽,在試婚紗的時候發(fā)現(xiàn)自己被綠了艳丛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡趟紊,死狀恐怖氮双,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情霎匈,我是刑警寧澤戴差,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站铛嘱,受9級特大地震影響暖释,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜墨吓,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一球匕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧帖烘,春花似錦亮曹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至历极,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間衷佃,已是汗流浹背趟卸。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留氏义,地道東北人锄列。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像惯悠,于是被迫代替她去往敵國和親邻邮。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355