摘要:將羅馬字母的字符串轉(zhuǎn)換為代表的整數(shù)這題不難,用一個存羅馬數(shù)字和具體數(shù)字的對應(yīng)關(guān)系,然后遍歷前后兩兩比較,該加加,該減減時間復(fù)雜度這里是自己寫的一個方法,里面用一個,相當(dāng)于存對應(yīng)當(dāng)時一直想著用一個來存減的值,所以沒法用就用了指針,但其實就
Easy 013 Roman to Integer Description:
</>復(fù)制代碼
將羅馬字母的字符串轉(zhuǎn)換為代表的整數(shù)
Roman numerals are usually written largest to smallest from left to right. However, there are six instances where subtraction is used:
I can be placed before V (5) and X (10) to make 4 and 9.
X can be placed before L (50) and C (100) to make 40 and 90.
C can be placed before D (500) and M (1000) to make 400 and 900.
</>復(fù)制代碼
Symbol Value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
My Solution:
這題不難,用一個HashMap存羅馬數(shù)字和具體數(shù)字的對應(yīng)關(guān)系,然后遍歷前后兩兩比較,該加加,該減減
時間復(fù)雜度O(n)
Fast Solution:
</>復(fù)制代碼
public static int romanToInt(String s) {
int num = 0;
int n = s.length();
for (int i = 0; i < n-1; i++) {
int curr = map(s.charAt(i)); //這里map是自己寫的一個方法,里面用一個switch,相當(dāng)于HashMap存對應(yīng)
int next = map(s.charAt(i+1));
num = curr < next ? num - curr : num + curr;
//當(dāng)時一直想著用一個temp來存減的值,所以沒法用for就用了while&point指針,但其實就是很簡單的比后面小的話在總值里面減去就可以,不需要temp
}
num += map(s.charAt(n-1));
return num;
}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/74252.html
摘要:字符數(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ū)別 目錄 一 目錄 二 前言 三 解題 ...
摘要:在線網(wǎng)站地址我的微信公眾號完整題目列表從年月日起,每天更新一題,順序從易到難,目前已更新個題。這是項目地址歡迎一起交流學(xué)習(xí)。 這篇文章記錄我練習(xí)的 LeetCode 題目,語言 JavaScript。 在線網(wǎng)站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公眾號: showImg(htt...
摘要:自己沒事刷的一些的題目,若有更好的解法,希望能夠一起探討項目地址 自己沒事刷的一些LeetCode的題目,若有更好的解法,希望能夠一起探討 Number Problem Solution Difficulty 204 Count Primes JavaScript Easy 202 Happy Number JavaScript Easy 190 Reverse Bi...
摘要:正則表達(dá)式思路首先我們要熟悉羅馬數(shù)的表達(dá)方式。驗證字符串是否是羅馬數(shù),我們先看一下有效的羅馬數(shù)是什么樣的,假設(shè)該數(shù)字小于,從千位到個位依次拆解。 Valid Roman Numeral 正則表達(dá)式 思路 首先我們要熟悉羅馬數(shù)的表達(dá)方式。M是1000,D是500,C是100,L是50,X是10,V是5,I是1。驗證字符串是否是羅馬數(shù),我們先看一下有效的羅馬數(shù)是什么樣的,假設(shè)該數(shù)字小于50...
摘要:題目詳情題目的意思是輸入一個阿拉伯?dāng)?shù)字,我們需要輸出這個數(shù)字的羅馬數(shù)字表示形式字符串。想法這道題最重要的點就是理解羅馬數(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.題目的意思是: 輸...
閱讀 3561·2023-04-25 19:56
閱讀 1673·2021-11-12 10:36
閱讀 1788·2021-11-08 13:19
閱讀 1550·2019-08-30 14:06
閱讀 3040·2019-08-30 11:01
閱讀 1733·2019-08-29 13:23
閱讀 2744·2019-08-29 11:18
閱讀 3429·2019-08-26 13:35