LeetCode 13. Roman to Integer C語言
給定一個羅馬數字,將其轉換為整數。
輸入保證在1到3999的範圍內。
題目的意思給羅馬數字,轉成對應的數字,範圍從1-3999;補充知識,下圖是對應轉換規則;
不過多的說廢話:根據上圖我們直接說一下解題思路:1。怎麼解析羅馬數字,需要我們自己做一些對映這裡我寫一個方法來做這項工作:int charToInt(char ch); 2。怎麼把解析出來的羅馬數字計算出來結果;我們需要觀察出普遍的規律,才能用程式來實現;
如:“IV”,“VI”,“IX”,“MCMXCVI”,通過觀察我們不難發現,當前字元轉成的數字小於下一個字元所轉成的數字,也就是說左邊的小於右邊的,如“IV”,這時候我們就後面的減去前面的; 這裡注意,當你做完減法時候,也就是我們已經也把後面的字元計算完成了,所以你的指標就要索引++;反之,加上當前轉出來的結果;具體實現,直接看程式碼吧!
直接貼出程式碼
int charToInt(char ch){
switch(ch){
case 'I': return 1;
case 'V': return 5;
case 'X': return 10;
case 'L': return 50;
case 'C': return 100;
case 'D': return 500;
case 'M': return 1000;
default: return 0;
}
}
int romanToInt(char* s) {
if(s == NULL)
return 0;
int index = 0; // 索引
int result = 0;// 最後輸出結果
while(s[index] !='\0'){
if(charToInt(s[index]) < charToInt(s[index+1])){
result += charToInt(s[index+1]) - charToInt(s[index]);
index++;
}else{
result += charToInt(s[index]) ;
}
index++;
}
return result;
}
相關文章
- 13. Roman to Integer
- Leetcode 12 Integer to RomanLeetCode
- Leetcode 13 Roman to IntegerLeetCode
- Leetcode 12. Integer to RomanLeetCode
- LeetCode Integer to Roman(012)解法總結LeetCode
- LeetCode Roman to Integer(013)解法總結LeetCode
- LeetCode - 解題筆記 - 12 - Integer to RomanLeetCode筆記
- Roman to Integer 羅馬數字轉整數
- Leetcode 7 Reverse IntegerLeetCode
- Leetcode 273 Integer to English WordsLeetCode
- Leetcode 8 String to Integer (atoi)LeetCode
- C語言C語言
- 聊聊C語言/C++—程式和程式語言C語言C++
- C語言字串C語言字串
- C語言(一)C語言
- C語言: returnC語言
- C語言 typedefC語言
- LeetCode題庫13. 羅馬數字轉整數(c++實現)LeetCodeC++
- LeetCode Reverse Integer(007)解法總結LeetCode
- [leetcode] 1394. Find Lucky Integer in an ArrayLeetCode
- C語言與嵌入式C語言的區別C語言
- C語言學習方法,怎麼學習C語言?C語言
- go語言與c語言的相互呼叫GoC語言
- 1901:The C programming language !(C語言)C語言
- C語言教程——03 C語言結構C語言
- C語言:extern用法C語言
- C語言版本迭代C語言
- C語言 截圖C語言
- C語言 - 字串拼接C語言字串
- C語言加強C語言
- c語言複習C語言
- c語言入門C語言
- C語言位操作C語言
- 初識C語言C語言
- c語言筆記C語言筆記
- C語言基礎C語言
- c語言作業C語言
- C語言 共用體C語言