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;
}
相關文章
- [Swift LeetCode]13. Roman to IntegerSwiftLeetCode
- 13. Roman to Integer--LeetCode RecordLeetCode
- Leetcode Integer to RomanLeetCode
- leetcode Roman to IntegerLeetCode
- [LeetCode] Roman to IntegerLeetCode
- Leetcode 12 Integer to RomanLeetCode
- Leetcode 13 Roman to IntegerLeetCode
- Leetcode-Roman to IntegerLeetCode
- Leetcode-Integer to RomanLeetCode
- Integer to Roman leetcode javaLeetCodeJava
- Roman to Integer leetcode javaLeetCodeJava
- Leetcode 12. Integer to RomanLeetCode
- LeetCode Roman to Integer(013)解法總結LeetCode
- LeetCode - 解題筆記 - 12 - Integer to RomanLeetCode筆記
- LeetCode Integer to Roman(012)解法總結LeetCode
- [LeetCode] Integer to Roman 整數轉化成羅馬數字LeetCode
- [LeetCode] Roman to Integer 羅馬數字轉化成整數LeetCode
- leetcode Reverse IntegerLeetCode
- C語言 C語言野指標C語言指標
- C語言---“C語言 誰與爭鋒?”C語言
- Leetcode 7 Reverse IntegerLeetCode
- LeetCode-Integer ReplacementLeetCode
- LeetCode-Integer BreaksLeetCode
- Reverse Integer leetcode javaLeetCodeJava
- C語言C語言
- 聊聊C語言/C++—程式和程式語言C語言C++
- Leetcode 273 Integer to English WordsLeetCode
- Leetcode-Problem:Reverse IntegerLeetCode
- LeetCode-Integer to English WordsLeetCode
- leetcode String to Integer (atoi)LeetCode
- Leetcode - String to Integer (atoi)LeetCode
- C語言字串C語言字串
- C語言: returnC語言
- C語言(一)C語言
- C語言概述C語言
- c語言 %pC語言
- 字串(C語言)字串C語言
- C語言程式C語言