LeetCode-java 67.二進(jìn)制求和(簡單)

題67:類型:字符串翠胰、數(shù)學(xué)

  • 題目:給你兩個(gè)二進(jìn)制字符串吏夯,返回它們的和(用二進(jìn)制表示)样屠。
    輸入為 非空 字符串且只包含數(shù)字 1 和 0。
    示例 1:  輸入: a = "11", b = "1"--->輸出: "100"
    示例 2: 輸入: a = "1010", b = "1011"--->輸出: "10101"
    提示:
    1葛菇、每個(gè)字符串僅由字符 '0' 或 '1' 組成意鲸。
    2廓鞠、1 <= a.length, b.length <= 10^4
    3口四、字符串如果不是 "0" ,就都不含前導(dǎo)零穆律。
  • 解題步驟
    1. 將兩個(gè)字符串末尾對齊惠呼,以較長字符串的長度進(jìn)行 從后向前 的遍歷,較短的字符串用 0 補(bǔ)齊峦耘;
    2. 將(同一位置的兩串之和加上一位進(jìn)位)對2取余后剔蹋,添加到新字符串的尾部,同時(shí)保留進(jìn)位辅髓,作為下一位置的初始泣崩;
    3. 遍歷結(jié)束后,若最終進(jìn)位為1利朵,則向新字符串尾部添加 '1';
      4.最后將新字符倒轉(zhuǎn)猎莲。
class Solution {
    public String addBinary(String a, String b) {
        // 單線程可變字符用StringBuilder
        StringBuilder res = new StringBuilder();
        int carry = 0; // 進(jìn)位初始為0
        int n = Math.max(a.length() , b.length());
        for(int i = 0;i < n ;++i){ // ++i 內(nèi)存空間消耗小
            // 進(jìn)位賦值绍弟,短串不足的部分取0,carry =a+b+上一位的進(jìn)位
            carry += i < a.length() ? (a.charAt(a.length() - 1 - i) - '0') : 0;
            // 由ASCII碼方法轉(zhuǎn)換為int類型  char 著洼?-'0' ---> int ?
            carry += i < b.length() ? (b.charAt(b.length() - 1 - i) - '0') : 0;
            //轉(zhuǎn)換為字符添加到結(jié)果字符串中
            res.append((char)carry % 2);
            carry /= 2; // 保留進(jìn)制樟遣,2取1, 0/1取0
        }
        //最終進(jìn)位判斷
        if(carry == 1){
            res.append('1');
        }
        res.reverse();
        return res.toString();
    }
}

小知識(shí):i++ :先在i所在的表達(dá)式中使用i的當(dāng)前值而叼,后讓i加1;
    ++i :讓i先加1豹悬,然后在i所在的表達(dá)式中使用i的新值
    i++由于是在使用當(dāng)前值之后再+1葵陵,所以會(huì)需要一個(gè)臨時(shí)變量來轉(zhuǎn)儲(chǔ),而++則直接+1瞻佛,不存在這樣的問題脱篙。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市伤柄,隨后出現(xiàn)的幾起案子绊困,更是在濱河造成了極大的恐慌,老刑警劉巖适刀,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秤朗,死亡現(xiàn)場離奇詭異,居然都是意外死亡笔喉,警方通過查閱死者的電腦和手機(jī)取视,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來常挚,“玉大人作谭,你說我怎么就攤上這事〈郑” “怎么了丢早?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長秧倾。 經(jīng)常有香客問我怨酝,道長,這世上最難降的妖魔是什么那先? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任农猬,我火速辦了婚禮,結(jié)果婚禮上售淡,老公的妹妹穿的比我還像新娘斤葱。我一直安慰自己,他們只是感情好揖闸,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布揍堕。 她就那樣靜靜地躺著,像睡著了一般汤纸。 火紅的嫁衣襯著肌膚如雪衩茸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天贮泞,我揣著相機(jī)與錄音楞慈,去河邊找鬼幔烛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛囊蓝,可吹牛的內(nèi)容都是我干的饿悬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼聚霜,長吁一口氣:“原來是場噩夢啊……” “哼狡恬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起俯萎,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤傲宜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后夫啊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體函卒,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年撇眯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了报嵌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,567評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡熊榛,死狀恐怖锚国,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情玄坦,我是刑警寧澤血筑,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站煎楣,受9級特大地震影響豺总,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜择懂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一喻喳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧困曙,春花似錦表伦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至要糊,卻和暖如春纲熏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工赤套, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人珊膜。 一個(gè)月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓容握,卻偏偏與公主長得像,于是被迫代替她去往敵國和親车柠。 傳聞我的和親對象是個(gè)殘疾皇子剔氏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容