每周一道算法题(九)

作者: CrazySteven | 来源:发表于2017-05-13 07:57 被阅读491次

今天的算法题难度级别'Easy',不得不说'easy'就是比'medium'简单啊,哈哈。。。

上周做的题目是int转罗马数字,这周当然就是罗马数字转int数字啦,范围依旧是1~3999,比较简单,说下思路就直接上代码。
思路:一个字符一个字符的遍历,如果当前的数字大于下一个数字,就减去当前的数字,否则就是加上当前的数字。
实现代码:

//将单个字符转成int数字(C语言里没有字典,只好这么麻烦了)
int wordToInt(char s) {
    switch (s) {
        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
int romanToInt(char* s) {
    int sum = 0;
    for (int i = 0; i < strlen(s); i++) {
        //如果当前的数字小于下一个数字(注意数组越界的问题)
        if (wordToInt(s[i]) < wordToInt(s[i + 1]) && i < strlen(s) - 1) {
            //减去当前数字
            sum -= wordToInt(s[i]);
        }else sum += wordToInt(s[i]);//否则就加上当前数字
    }
    return sum;
}

版权声明:本文为 Crazy Steven 原创出品,欢迎转载,转载时请注明出处!

相关文章

  • 每周一道算法题(九)

    今天的算法题难度级别'Easy',不得不说'easy'就是比'medium'简单啊,哈哈。。。 上周做的题目是in...

  • ARTS第三周(2018-12-16)

    1.Algorithm:每周至少做一个 leetcode 的算法题 第一道算法题:https://leetcode...

  • ARTS(09)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(05)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(07)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(10)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(02)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(03)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(08)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(06)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

网友评论

    本文标题:每周一道算法题(九)

    本文链接:https://www.haomeiwen.com/subject/sefxxxtx.html