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

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

Given a roman numeral, convert it to an integer.

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

 

 to see which companies asked this question

Ⅰ(1)Ⅴ(5)Ⅹ(10)L(50)C(100)D(500)M(1000)

规则:位于大数的后面时就作为加数;位于大数的前面就作为减数

如:Ⅲ=3,Ⅳ=4,Ⅵ=6,ⅩⅨ=19,ⅩⅩ=20,ⅩLⅤ=45,MCMⅩⅩC=1980

从最低位开始,如果前面的数比它大,则让前面的数值加后面的数值,如果比它小,则让当前数值减去前面的数值

int romanToInt(string s) {    if (s.length() == 0) return 0;    int len = s.length();    unordered_map
map; map.insert(make_pair('I', 1)); map.insert(make_pair('V', 5)); map.insert(make_pair('X', 10)); map.insert(make_pair('L', 50)); map.insert(make_pair('C', 100)); map.insert(make_pair('D', 500)); map.insert(make_pair('M', 1000)); int result = map.at(s.at(len - 1)); int pivot = result; for (int i = len - 2; i >= 0; i--) { int curr = map.at(s.at(i)); if (curr >= pivot) { result += curr; } else { result -= curr; } pivot = curr; } return result;}

 

转载于:https://www.cnblogs.com/sdlwlxf/p/5103763.html

你可能感兴趣的文章
OC高效率52之不要使用dispatch_get_current_queue
查看>>
Quartz2D
查看>>
栈与queue
查看>>
对于java我的看法
查看>>
Java Web中实现Servlet的方式
查看>>
74LVC245AD技术资料
查看>>
第三方库之 - SVProgressHUD
查看>>
struts-自定义标签
查看>>
ZHYcms开源内容管理系统源码阅读
查看>>
11个让你吃惊的 Linux 终端命令
查看>>
Caused by: java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut
查看>>
MySQL与MongoDB的操作对比
查看>>
由于没有远程桌面授权服务器可以提供许可证,远程会话被中断
查看>>
阿里的大数据好像挺牛的样子,好好研究下
查看>>
开源论坛系统/社群系统ThinkSNS+ PC端研发周报!
查看>>
Tomcat优化记录_数据源最大连接数_linux系统openfile最大限制
查看>>
什么是一致性Hash算法?
查看>>
jquery 返回顶部的两端代码
查看>>
我国.ORG域名注册量超11.9万个 升至全球第6位
查看>>
简单介绍下phpmyadmin 403错误的解决方法
查看>>