博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode13 Roman to Integer
阅读量:5238 次
发布时间:2019-06-14

本文共 1998 字,大约阅读时间需要 6 分钟。

题意:

Given a roman numeral, convert it to an integer.

Input is guaranteed to be within the range from 1 to 3999.

 

分析:

开始准备采用将罗马数字的字符串先划分千位,百位等,但是实际操作起来代码太复杂,而且自己想的逻辑也有问题。

最后采用的方式是从前到后遍历一遍字符即可,加判断来查看字符是不是与前面字符一起组成“小数在大数左边的数字”;

然后依次加数到结果进去即可。

代码:

1 class Solution { 2 public: 3     int romanToInt(string s) { 4         int result = 0; 5         for (int i = 0; i < s.size(); ++i) { 6             if (s[i] == 'M') { 7                 if (i - 1 >= 0 && s[i-1] == 'C') { 8                     result += 800; 9                 }10                 else {11                     result += 1000;12                 }13             }14             if (s[i] == 'D') {15                 if (i - 1 >= 0 && s[i-1] == 'C') {16                     result += 300;17                 }18                 else {19                     result += 500;20                 }21             }22             if (s[i] == 'C') {23                 if (i - 1 >= 0 && s[i-1] == 'X') {24                     result += 80;25                 }26                 else {27                     result += 100;28                 }29             }30             if (s[i] == 'L') {31                 if (i - 1 >= 0 && s[i-1] == 'X') {32                     result += 30;33                 }34                 else {35                     result += 50;36                 }37             }38             if (s[i] == 'X') {39                 if (i - 1 >= 0 && s[i-1] == 'I') {40                     result += 8;41                 }42                 else {43                     result += 10;44                 }45             }46             if (s[i] == 'V') {47                 if (i - 1 >= 0 && s[i-1] == 'I') {48                     result += 3;49                 }50                 else {51                     result += 5;52                 }53             }54             if (s[i] == 'I'){55                 result += 1;56             }57         }58         return result;59     }60 };

 

转载于:https://www.cnblogs.com/wangxiaobao/p/5751166.html

你可能感兴趣的文章
实用SQL语句大全
查看>>
20080421
查看>>
Docker - 常用命令集
查看>>
php 日期
查看>>
POJ 1154 LETTERS
查看>>
算法Sedgewick第四版-第1章基础-001递归
查看>>
1-23 类
查看>>
JSqlParser系列之二代码结构(原)
查看>>
linux-vim/编辑器
查看>>
读think in java有感
查看>>
foxmail地址簿导入thunderbird的乱码问题 (转载)
查看>>
智能自然语言交流系统项目总结
查看>>
生成器,推导式
查看>>
设计模式--通用责任链分配模式
查看>>
Binary Search
查看>>
div的拖拽交换位置
查看>>
PHP常用代码段:
查看>>
[第四章] 测试依赖性和异常
查看>>
ecmall分页
查看>>
[网易]路灯
查看>>