LeetCode筆記:717. 1-bit and 2-bit Characters

問題(Easy):

We have two special characters. The first character can be represented by one bit 0. The second character can be represented by two bits (10 or 11).

Now given a string represented by several bits. Return whether the last character must be a one-bit character or not. The given string will always end with a zero.

Example 1:
Input:
bits = [1, 0, 0]
Output: True
Explanation:
The only way to decode it is two-bit character and one-bit character. So the last character is one-bit character.

Example 2:
Input:
bits = [1, 1, 1, 0]
Output: False
Explanation:
The only way to decode it is two-bit character and two-bit character. So the last character is NOT one-bit character.

Note:

  • 1 <= len(bits) <= 1000.
  • bits[i] is always 0 or 1.

大意:

我們有兩個特殊的字符坊谁,第一個字符可以用一個比特的0表示讶凉,第二個字符可以用兩個比特(10或者11)表示。

現(xiàn)在給出一個多個比特組成的字符串沐绒。返回最后一個字符是否必須是一比特的字符饶氏。給出的字符串總是以0結(jié)尾呈队。

例1:
輸入:
bits = [1, 1, 1, 0]
輸出:True
解釋:
唯一的解碼方式是兩比特的字符串和一比特的字符人灼。所以最后一個字符是一比特的字符坐昙。

例2:
輸入:
bits = [1, 1, 1, 0]
輸出:False
解釋:
唯一的解碼方式是兩比特字符和兩比特字符。所以最后一個字符不是一比特字符溉浙。

注意:

  • 1 <= len(bits) <= 1000烫止。
  • bits[i]永遠(yuǎn)是0或1。

思路:

我們可以找一下規(guī)律:

如果只有一個0肯定是單字符戳稽;

如果有兩個數(shù)字馆蠕,看倒數(shù)第二個是1還是0就可以判斷,是1則可以是雙字符;

如果有三個數(shù)字互躬〔チ蓿看倒數(shù)第二、第三個數(shù)字是什么吼渡,也就是最后的0前面是什么容为,如果是“010”,則可以雙字符寺酪,如果是“110”坎背,則只能單字符,如果“100”或者“000”房维,肯定也只能單字符沼瘫,也即是說,0前面如果緊跟著單數(shù)個1咙俩,則可以雙字符耿戚,如果是雙數(shù)個1(比如0個或2個),則只能單字符阿趁,這個規(guī)律對不對呢膜蛔?

假設(shè)有五個數(shù)字,最后的0前有雙數(shù)個1的話脖阵,比如“11110”皂股、“00110”都只能單字符,如果最后的0前是單數(shù)個1的話命黔,比如“01110”呜呐、“00010”,則可以雙字符悍募,看來這個規(guī)律是對的蘑辑,所以只用判斷最后的0前連續(xù)的1的個數(shù)是單還是雙即可。

代碼(C++):

class Solution {
public:
    bool isOneBitCharacter(vector<int>& bits) {
        int len = bits.size();
        if (len == 1) return true;
        if (bits[len-2] == 0) return true;
        else {
            int num = 1;
            int index = len - 3;
            while (index >= 0) {
                if (bits[index] == 1) num++;
                else break;
                index--;
            }
            if (num % 2 == 0) return true;
        }
        return false;
    }
};

他山之石

看到別人的一個方法坠宴,遍歷一遍數(shù)組內(nèi)容洋魂,遇到1則前進(jìn)兩步(因為1開頭一定是包含兩個比特的),遇到0則前進(jìn)一步喜鼓。遇到1則令結(jié)果變量為false副砍,遇到0則令結(jié)果變量為true,也就是說庄岖,當(dāng)遍歷完時豁翎,如果最后走的一步恰好為遇到1時的兩步,則返回為false隅忿,如果最后走的一步是遇到0時的一步谨垃,則返回為true启搂。

class Solution {
public:
    bool isOneBitCharacter(vector<int>& bits) {
        bool c;
        for (int i = 0; i < bits.size();) {
            if (bits[i]) c = 0, i+=2;
            else c = 1, ++i;
        }
        return c;
    }
};

合集:https://github.com/Cloudox/LeetCode-Record


查看作者首頁

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市刘陶,隨后出現(xiàn)的幾起案子胳赌,更是在濱河造成了極大的恐慌,老刑警劉巖匙隔,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疑苫,死亡現(xiàn)場離奇詭異,居然都是意外死亡纷责,警方通過查閱死者的電腦和手機(jī)捍掺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來再膳,“玉大人挺勿,你說我怎么就攤上這事∥蛊猓” “怎么了不瓶?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長灾杰。 經(jīng)常有香客問我蚊丐,道長,這世上最難降的妖魔是什么艳吠? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任麦备,我火速辦了婚禮,結(jié)果婚禮上昭娩,老公的妹妹穿的比我還像新娘凛篙。我一直安慰自己,他們只是感情好栏渺,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布呛梆。 她就那樣靜靜地躺著,像睡著了一般迈嘹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上全庸,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天秀仲,我揣著相機(jī)與錄音,去河邊找鬼壶笼。 笑死神僵,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的覆劈。 我是一名探鬼主播保礼,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼沛励,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了炮障?” 一聲冷哼從身側(cè)響起目派,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胁赢,沒想到半個月后企蹭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡智末,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年谅摄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片系馆。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡送漠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出由蘑,到底是詐尸還是另有隱情闽寡,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布纵穿,位于F島的核電站下隧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏谓媒。R本人自食惡果不足惜淆院,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望句惯。 院中可真熱鬧土辩,春花似錦、人聲如沸抢野。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽指孤。三九已至启涯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間恃轩,已是汗流浹背结洼。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留叉跛,地道東北人松忍。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像筷厘,于是被迫代替她去往敵國和親鸣峭。 傳聞我的和親對象是個殘疾皇子宏所,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

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

  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,763評論 0 38
  • 最近頭暈的厲害,也顧不上寫日記了摊溶。感恩今天社區(qū)醫(yī)療活動爬骤,幫我量血壓正常,社區(qū)純凈水辦卡活動更扁,不僅送水還幫我...
    Miss微微恩閱讀 157評論 0 0
  • 通過今天的早讀浓镜,我了解到狐貍和小男孩因為訓(xùn)養(yǎng)溃列,成為了彼此的唯一! 現(xiàn)實生活中: 我們會因為某種關(guān)系膛薛,變得更加親密听隐。...
    后知后覺的持續(xù)努力閱讀 253評論 0 0
  • 今天開始學(xué)架子鼓~~~感覺很棒~ 老師說學(xué)架子鼓的女生十有八廢,我希望我是另外的十分之二哄啄。 多練習(xí)鼓雅任,打好基礎(chǔ)~加...
    安長樂閱讀 259評論 0 0
  • 目錄1.mybatis中大于等于小于等于的寫法2.mybatis動態(tài)查詢條件組裝3.mybatis批量條件4.my...
    挑戰(zhàn)者666888閱讀 3,584評論 0 5