力扣 (LeetCode)-13. 羅馬數(shù)字轉(zhuǎn)整數(shù)|刷題打卡
Github來(lái)源:力扣 (LeetCode)|刷題打卡 | 求星星 ? | 給個(gè)??關(guān)注,??點(diǎn)贊,??鼓勵(lì)一下作者
[已開(kāi)啟]任務(wù)一:刷題打卡 * 10 篇
哪吒人生信條:如果你所學(xué)的東西 處于喜歡 才會(huì)有強(qiáng)大的動(dòng)力支撐。
每天學(xué)習(xí)編程,讓你離夢(mèng)想更新一步,感謝不負(fù)每一份熱愛(ài)編程的程序員,不論知識(shí)點(diǎn)多么奇葩,和我一起,讓那一顆四處流蕩的心定下來(lái),一直走下去,加油,2021加油!歡迎關(guān)注加我vx:xiaoda0423,歡迎點(diǎn)贊、收藏和評(píng)論
時(shí)間:3 月 1 日 ~ 3 月 13 日
力扣 (LeetCode)-兩數(shù)之和,有效的括號(hào),兩數(shù)相加|刷題打卡-3月1日 力扣 (LeetCode)-合并兩個(gè)有序鏈表,刪除排序數(shù)組中的重復(fù)項(xiàng),JavaScript筆記|刷題打卡-3月2日 力扣 (LeetCode)-最大子序和,JavaScript數(shù)據(jù)結(jié)構(gòu)與算法(數(shù)組)|刷題打卡-3月3日 針對(duì)CSS說(shuō)一說(shuō)|技術(shù)點(diǎn)評(píng)-3月4日 力扣 (LeetCode)-棧,括號(hào)生成 |刷題打卡-3月5日 原來(lái)也沒(méi)有那么難!Vue商城開(kāi)發(fā) | 技術(shù)點(diǎn)評(píng)-3月6日 力扣 (LeetCode)-加一,隊(duì)列 |刷題打卡-3月7日 JavaScript數(shù)據(jù)結(jié)構(gòu)之鏈表 | 技術(shù)點(diǎn)評(píng)-3月8日 JavaScript的數(shù)據(jù)結(jié)構(gòu)-集合 |技術(shù)點(diǎn)評(píng)-3月9號(hào) 力扣 (LeetCode)-合并兩個(gè)有序數(shù)組,字典,散列表|刷題打卡-3月10號(hào) 力扣 (LeetCode)-對(duì)稱(chēng)二叉樹(shù),樹(shù)|刷題打卡-3月11號(hào) 力扣 (LeetCode)-104. 二叉樹(shù)的最大深度,圖|刷題打卡-3月12號(hào)
前言
如果這篇文章有幫助到你,給個(gè)??關(guān)注,??點(diǎn)贊,??鼓勵(lì)一下作者,接收好挑戰(zhàn)了嗎?文章公眾號(hào)首發(fā),關(guān)注 程序員哆啦A夢(mèng) 第一時(shí)間獲取最新的文章
??筆芯??~
棧,隊(duì)列,鏈表,集合,字典和散列表,樹(shù),圖
13. 羅馬數(shù)字轉(zhuǎn)整數(shù)
一、題目描述
羅馬數(shù)字包含以下七種字符: I, V, X, L,C,D 和 M。


二、思路分析
羅馬數(shù)字由 I,V,X,L,C,D,M構(gòu)成;當(dāng)小值在大值的左邊,則減小值,如 IV=5-1=4當(dāng)小值在大值的右邊,則加小值,如 VI=5+1=6由上可知,右值永遠(yuǎn)為正,因此最后一位必然為正
把一個(gè)小值放在大值的左邊,就是做減法,否則為加法。

首先將所有的組合可能性列出并添加到哈希表中 然后對(duì)字符串進(jìn)行遍歷,由于組合只有兩種,一種是 1個(gè)字符,一種是2個(gè)字符,其中2個(gè)字符優(yōu)先于1個(gè)字符先判斷兩個(gè)字符的組合在哈希表中是否存在,存在則將值取出加到結(jié)果 ans中,并向后移2個(gè)字符。不存在則將判斷當(dāng)前1個(gè)字符是否存在,存在則將值取出加到結(jié)果ans中,并向后移1個(gè)字符遍歷結(jié)束返回結(jié)果 ans




三、答案代碼
var romanToInt = function(s) {
let map = {
I: 1,
IV: 4,
V: 5,
IX: 9,
X: 10,
XL: 40,
L: 50,
XC: 90,
C: 100,
CD: 400,
D: 500,
CM: 900,
M: 1000
}
let ans = 0;
for(let i=0; i<s.length;){
if( i+1 < s.length && map[s.substring(i,i+2)] ){
// 2個(gè)一組
ans += map[s.substring(i,i+2)];
i += 2;
}else{
// 單一個(gè)
ans += map[s.substring(i,i+1)];
i++;
}
}
return ans;
};
四、總結(jié)
羅馬數(shù)字轉(zhuǎn)整數(shù)題解
回看筆者往期高贊文章,也許能收獲更多喔!
一個(gè)合格的初級(jí)前端工程師需要掌握的模塊筆記 Vue.js筆試題解決業(yè)務(wù)中常見(jiàn)問(wèn)題 【初級(jí)】個(gè)人分享Vue前端開(kāi)發(fā)教程筆記 長(zhǎng)篇總結(jié)之JavaScript,鞏固前端基礎(chǔ) 前端面試必備ES6全方位總結(jié) 達(dá)達(dá)前端個(gè)人web分享92道JavaScript面試題附加回答 【圖文并茂,點(diǎn)贊收藏哦!】重學(xué)鞏固你的Vuejs知識(shí)體系 【思維導(dǎo)圖】前端開(kāi)發(fā)-鞏固你的JavaScript知識(shí)體系 14期-連肝7個(gè)晚上,總結(jié)了計(jì)算機(jī)網(wǎng)絡(luò)的知識(shí)點(diǎn)!(共66條) 這是我的第一次JavaScript初級(jí)技巧 localStorage和sessionStorage本地存儲(chǔ) HTML5中的拖放功能 挑戰(zhàn)前端知識(shí)點(diǎn)HTTP/ECMAScript 必學(xué)必會(huì)-音頻和視頻 前端170面試題+答案學(xué)習(xí)整理(良心制作) 前端HTML5面試官和應(yīng)試者一問(wèn)一答 哪吒鬧海,席卷圖文學(xué)習(xí)前端Flex布局 騰訊位置服務(wù)開(kāi)發(fā)應(yīng)用 【進(jìn)階】面試官問(wèn)我Chrome瀏覽器的渲染原理(6000字長(zhǎng)文) 面試官一上來(lái)就問(wèn)我Chrome底層原理和HTTP協(xié)議(萬(wàn)字長(zhǎng)文) 熬夜總結(jié)了 “HTML5畫(huà)布” 的知識(shí)點(diǎn) this/call/apply/bind(萬(wàn)字長(zhǎng)文) HTTP/HTTPS/HTTP2/DNS/TCP/經(jīng)典題 執(zhí)行上下文/作用域鏈/閉包/一等公民 Web頁(yè)面制作基礎(chǔ) 學(xué)習(xí)總結(jié)之HTML5劍指前端(建議收藏,圖文并茂)
??關(guān)注+點(diǎn)贊+收藏+評(píng)論+轉(zhuǎn)發(fā)??,原創(chuàng)不易,鼓勵(lì)筆者創(chuàng)作更好的文章
點(diǎn)贊、收藏和評(píng)論
我是Jeskson(達(dá)達(dá)前端),感謝各位人才的:點(diǎn)贊、收藏和評(píng)論,我們下期見(jiàn)!(如本文內(nèi)容有地方講解有誤,歡迎指出?謝謝,一起學(xué)習(xí)了)
我們下期見(jiàn)!
文章持續(xù)更新,可以微信搜一搜「 程序員哆啦A夢(mèng) 」第一時(shí)間閱讀,回復(fù)【資料】有我準(zhǔn)備的一線大廠資料,本文 http://www.dadaqianduan.cn/#/ 已經(jīng)收錄
github收錄,歡迎Star:https://github.com/webVueBlog/WebFamily
