Advent of Code Day 8 注冊表愛好者

解題語言不限Java

題目內(nèi)容

You receive a signal directly from the CPU. Because of your recent assistance with jump instructions, it would like you to compute the result of a series of unusual register instructions.
你收到一條從CPU 來的消息娄琉,因?yàn)槟銕椭鉀Q了跳轉(zhuǎn)指令桶错,CPU想讓你幫忙計算一系列奇怪的注冊表指令。

Each instruction consists of several parts: the register to modify, whether to increase or decrease that register's value, the amount by which to increase or decrease it, and a condition. If the condition fails, skip the instruction without modifying the register. The registers all start at 0. The instructions look like this:
每個命令分為幾個部分恼除,要變更的注冊表項(xiàng)橡淑,增加或者減少指令彩届,增加或者減少的量,還有一個條件繁疤。如果不符合條件怕敬,就跳過這個結(jié)果揣炕。所有的注冊表項(xiàng)初始值都為零。

b inc 5 if a > 1
a inc 1 if b < 5
c dec -10 if a >= 1
c inc -20 if c == 10

These instructions would be processed as follows:
這些指令會經(jīng)過一下過程东跪。

  • Because a starts at 0, it is not greater than 1, and so b is not modified.
    因?yàn)?code>a的起始值是0畸陡,不大于1,所以b不會變化虽填。

  • a is increased by 1(to1) becauseb is less than 5(it is 0).
    a 增加1因?yàn)?code>b小于5丁恭。

  • cis decreased by -10 (to 10) because a is now greater than or equal to 1 (it is 1).
    c減少了-10因?yàn)?code>a與等于1

  • cis increased by-20(to -10) because c is equal to10.
    c增加-20因?yàn)?code>c與等于10卤唉。

After this process, the largest value in any register is1.
在這些步驟之后涩惑,在注冊表里最大的項(xiàng)是1

You might also encounter<=(less than or equal to) or!=(not equal to). However, the CPU doesn't have the bandwidth to tell you what all the registers are named, and leaves that to you to determine.
你應(yīng)該考慮小于等于(<=)和不等于(!=)桑驱。但是,CPU并沒有帶寬告訴你所有的注冊表項(xiàng)跛蛋,這需要你自己去搞定熬的。

What is the largest value in any register after completing the instructions in your puzzle input?
在給出的操作完成之后,最大的注冊表項(xiàng)等于什么赊级?

解題思路

這個題押框,我個人強(qiáng)力推薦HashMap作為儲存。
基本步驟如下:

  1. 讀取并解析所以的指令理逊,具體可以按照指令的格式目標(biāo)項(xiàng)+增減+增減量+if+條件項(xiàng)+條件+條件量橡伞。
  2. 在讀取命令的時候,把所有的注冊表項(xiàng)都加入到HashMap里晋被。
  3. 按順序運(yùn)行所有命令兑徘。
  4. 運(yùn)行完成之后,檢查注冊表值羡洛,并查找最大值挂脑。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市欲侮,隨后出現(xiàn)的幾起案子崭闲,更是在濱河造成了極大的恐慌,老刑警劉巖威蕉,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刁俭,死亡現(xiàn)場離奇詭異,居然都是意外死亡韧涨,警方通過查閱死者的電腦和手機(jī)牍戚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進(jìn)店門侮繁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人翘魄,你說我怎么就攤上這事鼎天。” “怎么了暑竟?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵斋射,是天一觀的道長。 經(jīng)常有香客問我但荤,道長罗岖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任腹躁,我火速辦了婚禮桑包,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘纺非。我一直安慰自己哑了,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布烧颖。 她就那樣靜靜地躺著弱左,像睡著了一般。 火紅的嫁衣襯著肌膚如雪炕淮。 梳的紋絲不亂的頭發(fā)上拆火,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天,我揣著相機(jī)與錄音涂圆,去河邊找鬼们镜。 笑死,一個胖子當(dāng)著我的面吹牛润歉,可吹牛的內(nèi)容都是我干的模狭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼卡辰,長吁一口氣:“原來是場噩夢啊……” “哼胞皱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起九妈,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤反砌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后萌朱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宴树,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年晶疼,在試婚紗的時候發(fā)現(xiàn)自己被綠了酒贬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片又憨。...
    茶點(diǎn)故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖锭吨,靈堂內(nèi)的尸體忽然破棺而出蠢莺,到底是詐尸還是另有隱情,我是刑警寧澤零如,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布躏将,位于F島的核電站,受9級特大地震影響考蕾,放射性物質(zhì)發(fā)生泄漏祸憋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一肖卧、第九天 我趴在偏房一處隱蔽的房頂上張望蚯窥。 院中可真熱鬧,春花似錦塞帐、人聲如沸拦赠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矛紫。三九已至,卻和暖如春牌里,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背务甥。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工牡辽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人敞临。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓态辛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親挺尿。 傳聞我的和親對象是個殘疾皇子奏黑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評論 2 359