zoukankan      html  css  js  c++  java
  • 13. 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;
        }
        return 0;
    }
    
    int romanToInt(char* s) {
        int len = strlen(s);
        int ret = 0;
        
        for(int i = 0; i < len; i++){
            if(i+1 < len && toNumber(s[i+1]) > toNumber(s[i])){
                ret += toNumber(s[i+1]) - toNumber(s[i]);
                i++;
            }
            else ret += toNumber(s[i]);
        }
        return ret;
    }
  • 相关阅读:
    递归
    排序算法的稳定性与复杂度总结
    二分查找
    希尔排序
    快速排序
    归并排序
    插入排序
    选择排序
    冒泡排序
    i2c_smbs 函数
  • 原文地址:https://www.cnblogs.com/qionglouyuyu/p/5388362.html
Copyright © 2011-2022 走看看