[48無驗(yàn)證]字符編碼-吉比特2018秋

1.題目描述

將a,b址遇,c熄阻,d分別編碼為1,0傲隶,10,11窃页,那么給定一個二進(jìn)制串就可以對其進(jìn)行解碼跺株。例如二進(jìn)制串“10”可以解碼為“ab”复濒,也可以解碼為“c”。給定一個二進(jìn)制串乒省,要求計(jì)算出該二進(jìn)制串有多少種解碼方式巧颈。(二進(jìn)制串的長度不超過45,能設(shè)計(jì)出O(n)復(fù)雜度的算法更佳)

2.題目解析

  • 思路1:使用分治的思想
    基本思路是將原二進(jìn)制串劃分成兩個規(guī)模更小的子串袖扛,求出對應(yīng)的方案數(shù)砸泛,然后相乘,就可得到原串的方案數(shù)蛆封。但這里需要注意一下唇礁,因?yàn)椤?0”有兩種解碼方案(“11”的情況類似),所以劃分子串時惨篱,如果中間恰好是“10”盏筐,則存在兩種劃分方案。
    例如:“xxx10yyy”
    劃分方案一:“xxx1”和“0yyy”
    劃分方案二:“xxx”砸讳、“10”和“yyy”
    兩種方案數(shù)之和為最終的方案數(shù)琢融。
  • 思路2:
    使用動態(tài)規(guī)劃的思想
    假設(shè)f(i)表示前面i個字符組成的二進(jìn)制串對應(yīng)的解碼方案數(shù),現(xiàn)在考慮第i-1個字符和第i個字
    符在如下四種情況下f(i)與f(i-1)的關(guān)系簿寂。
    xxxx00漾抬,00只有一種解碼方案:xxxx00,所以f(i)=f(i-1)
    xxxx01常遂,01只有一種解碼方案:xxxx01纳令,所以f(i)=f(i-1)
    xxxx10,10有兩種解碼方案:xxxx10和xxxx10烈钞,所以f(i)=f(i-1)+f(i-2)
    xxxx11泊碑,11有兩種解碼方案:xxxx11和xxxx11,所以f(i)=f(i-1)+f(i-2)

3.參考答案

  • 分治
#include <iostream>
using namespace std;
int solve(int s, int e,string& str) {
  if (s >= e)
    return 1;
  int mid = (s + e) / 2;
  if (str[mid] == '1') { // 有兩種解決方案
    return solve(s, mid,str) * solve(mid + 1, e,str) +
           solve(s, mid - 1,str) * solve(mid + 2, e,str);
  }else{ // 有一種解決方案
    return solve(s, mid,str) * solve(mid + 1, e,str);
  }
}
int main(){
  string str;
  cin >> str;
  printf("%d\n",solve(0,str.size()-1,str));
}
  • 動態(tài)規(guī)劃
#include <iostream>
using namespace std;
int solve(int idx,string& str){
  if (idx == -1) return 1;
  if (idx == 0) return 1;
  if ('0' == str[idx-1]) { // 前一個數(shù)字是0,只有一種解決方案
    return solve(idx-1,str);
  } else { // 前一個數(shù)字是1,有兩種解決方案
    return solve(idx-1,str) + solve(idx-2,str);
  }
}
int main(){
  string str;
  cin >> str;
  printf("%d\n",solve(str.size()-1,str));
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末毯欣,一起剝皮案震驚了整個濱河市馒过,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌酗钞,老刑警劉巖腹忽,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異砚作,居然都是意外死亡窘奏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門葫录,熙熙樓的掌柜王于貴愁眉苦臉地迎上來着裹,“玉大人,你說我怎么就攤上這事米同『龋” “怎么了摔竿?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長少孝。 經(jīng)常有香客問我继低,道長,這世上最難降的妖魔是什么稍走? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任袁翁,我火速辦了婚禮,結(jié)果婚禮上婿脸,老公的妹妹穿的比我還像新娘粱胜。我一直安慰自己,他們只是感情好盖淡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布年柠。 她就那樣靜靜地躺著,像睡著了一般褪迟。 火紅的嫁衣襯著肌膚如雪冗恨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天味赃,我揣著相機(jī)與錄音掀抹,去河邊找鬼。 笑死心俗,一個胖子當(dāng)著我的面吹牛傲武,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播城榛,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼揪利,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了狠持?” 一聲冷哼從身側(cè)響起疟位,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎喘垂,沒想到半個月后甜刻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡正勒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年得院,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片章贞。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡祥绞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蜕径,我是刑警寧澤怪蔑,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站丧荐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏喧枷。R本人自食惡果不足惜虹统,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望隧甚。 院中可真熱鬧车荔,春花似錦、人聲如沸戚扳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帽借。三九已至珠增,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間砍艾,已是汗流浹背蒂教。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脆荷,地道東北人凝垛。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像蜓谋,于是被迫代替她去往敵國和親梦皮。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354

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

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)桃焕,也就是一...
    悟名先生閱讀 4,149評論 0 13
  • 怎么辦剑肯,還是喜歡文字。 這是現(xiàn)在一直在困惑的東西覆旭。 總是不同層次的感覺事與愿違退子。 已經(jīng)有三個故事了《三妹》,《老高...
    貴哥的萬萬小姐閱讀 193評論 0 0
  • 當(dāng)老板爸突然頻繁主動給我打電話的時候型将,我開始慌張寂祥,突然發(fā)現(xiàn)他老了,沒有那么倔強(qiáng)和固執(zhí)七兜,他開始說著一些以前根本不可能...
    沒文化的詩人1923閱讀 263評論 0 0
  • 前言## 在應(yīng)用中使用動畫丸凭,可以給用戶帶來良好的交互體驗(yàn)。通過之前對Android動畫的分類總結(jié),嘗試了使用屬性動...
    IAM四十二閱讀 1,299評論 0 21
  • 第一惜犀,強(qiáng)迫性重復(fù)的意思是铛碑,人們會主動地追求重復(fù)一些情景,不斷去體驗(yàn)其中的一些感受虽界。 第二汽烦,我們不僅會強(qiáng)迫性重復(fù)一些...
    青茶_2619閱讀 278評論 0 0