【题】 Roman to Integer
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
【题目分析】首先,罗马数字的表示必须要清楚,这一点上网查。
【具体代码如下】
int toNumber(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;
}
}
int romanToInt(char* s) {int total=0;
char *p=s;
int i=0;
int a=0;
int b=0;
while(p[i]!='\0')
{
a=toNumber(p[i]);
b=toNumber(p[i+1]);
if(a>=b)
{total=a+total;
i=i+1;
}
if(a
【[leetcode]Roman to Integer C语言】【自我总结】
1.首先我遇到的问题是如何将’X’,I,L,C,D…..罗马数字与他们所表示的具体值联系起来。采用的方法是实现一个独立的函数完成此功能。一一对应采用switch语句,都不满足时return 0; 这个比较容易被忽略。函数返回值就是传入参数的数值。这样做在方便实现romanToInt函数的编写。
推荐阅读
- 数据结构与算法|【算法】力扣第 266场周赛
- leetcode|今天开始记录自己的力扣之路
- Python|Python 每日一练 二分查找 搜索旋转排序数组 详解
- 【LeetCode】28.实现strstr() (KMP超详细讲解,sunday解法等五种方法,java实现)
- LeetCode-35-搜索插入位置-C语言
- leetcode python28.实现strStr()35. 搜索插入位置
- Leetcode Permutation I & II
- python|leetcode Longest Substring with At Most Two Distinct Characters 滑动窗口法
- LeetCode 28 Implement strStr() (C,C++,Java,Python)
- Python|Python Leetcode(665.非递减数列)