摘要:題目詳情題目的意思是輸入一個阿拉伯?dāng)?shù)字,我們需要輸出這個數(shù)字的羅馬數(shù)字表示形式字符串。想法這道題最重要的點(diǎn)就是理解羅馬數(shù)和阿拉伯?dāng)?shù)之間的轉(zhuǎn)換規(guī)律。
題目詳情
Given an integer, convert it to a roman numeral.想法
Input is guaranteed to be within the range from 1 to 3999.題目的意思是: 輸入一個阿拉伯?dāng)?shù)字,我們需要輸出這個數(shù)字的羅馬數(shù)字表示形式(字符串)。
這道題最重要的點(diǎn)就是理解羅馬數(shù)和阿拉伯?dāng)?shù)之間的轉(zhuǎn)換規(guī)律。
1000[M],500[D],100[C],50[L],10[X],5[V],1[I]這是基本轉(zhuǎn)換
但是還有一些特殊情況900[CM]:這種情況就是左邊的這個羅馬字符代表的數(shù)、減去右邊的這個羅馬字符代表的數(shù)才得到900。相似的有400[CD],90[XC],40[XL],9[IX],4[IV]
解法public String intToRoman(int num) { if(num < 1)return ""; int[] numbers = {1000,900,500,400,100,90,50,40,10,9,5,4,1}; String[] roman = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"}; StringBuilder res = new StringBuilder(); for(int i=0;i= numbers[i]){ num -= numbers[i]; res.append(roman[i]); } } return res.toString(); }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/68695.html
摘要:解題思路其中每兩個階段的之間有一個減法的表示,比如,寫在前面表示。所以映射關(guān)系應(yīng)該是然后就是貪心的做法,每次選擇能表示的最大值,把對應(yīng)的字符串連起來。 Roman to Integer Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range fro...
摘要:正則表達(dá)式思路首先我們要熟悉羅馬數(shù)的表達(dá)方式。驗(yàn)證字符串是否是羅馬數(shù),我們先看一下有效的羅馬數(shù)是什么樣的,假設(shè)該數(shù)字小于,從千位到個位依次拆解。 Valid Roman Numeral 正則表達(dá)式 思路 首先我們要熟悉羅馬數(shù)的表達(dá)方式。M是1000,D是500,C是100,L是50,X是10,V是5,I是1。驗(yàn)證字符串是否是羅馬數(shù),我們先看一下有效的羅馬數(shù)是什么樣的,假設(shè)該數(shù)字小于50...
摘要:題目鏈接題目分析將給定的羅馬數(shù)字轉(zhuǎn)換成阿拉伯?dāng)?shù)字。要注意,先替換連續(xù)出現(xiàn)的那些。最終代碼若覺得本文章對你有用,歡迎用愛發(fā)電資助。 D82 13. Roman to Integer 題目鏈接 13. Roman to Integer 題目分析 將給定的羅馬數(shù)字轉(zhuǎn)換成阿拉伯?dāng)?shù)字。 思路 用替換法。 要注意,先替換連續(xù)出現(xiàn)的那些。例如,比先替換I,要先替換III。 最終代碼
摘要:將羅馬字母的字符串轉(zhuǎn)換為代表的整數(shù)這題不難,用一個存羅馬數(shù)字和具體數(shù)字的對應(yīng)關(guān)系,然后遍歷前后兩兩比較,該加加,該減減時(shí)間復(fù)雜度這里是自己寫的一個方法,里面用一個,相當(dāng)于存對應(yīng)當(dāng)時(shí)一直想著用一個來存減的值,所以沒法用就用了指針,但其實(shí)就 Easy 013 Roman to Integer Description: 將羅馬字母的字符串轉(zhuǎn)換為代表的整數(shù)Roman numerals are ...
摘要:字符數(shù)值例如,羅馬數(shù)字寫做,即為兩個并列的。通常情況下,羅馬數(shù)字中小的數(shù)字在大的數(shù)字的右邊。給定一個羅馬數(shù)字,將其轉(zhuǎn)換成整數(shù)。 Create by jsliang on 2019-05-23 13:24:24 Recently revised in 2019-05-23 14:55:20 一 目錄 不折騰的前端,和咸魚有什么區(qū)別 目錄 一 目錄 二 前言 三 解題 ...
閱讀 2817·2021-10-14 09:42
閱讀 877·2021-10-11 10:57
閱讀 800·2019-08-30 15:54
閱讀 1945·2019-08-30 13:50
閱讀 1715·2019-08-30 11:19
閱讀 970·2019-08-29 12:38
閱讀 1456·2019-08-26 11:51
閱讀 1421·2019-08-26 10:48