当前位置: 首页 > news >正文

LeetCode-13-roman-to-integer

LeetCode-13-roman-to-integer

一、问题描述

  将罗马数字转化成整数,数字范围在1到3999之间。

  这题比较坑的是罗马数字,具体描述可以参见百度百科:https://baike.baidu.com/item/%E7%BD%97%E9%A9%AC%E6%95%B0%E5%AD%97/772296?fr=aladdin

二、问题实现

  思路比较简单,从前向后比较,如果前一个数大于等于后一个数,则将result和后面的数值相加,否则将result减去两倍前一个数,再加上后一个数(因为前一个数在之前已经加过一次,所以需要减两次)

int romanToInt(string s) {
	unordered_map<char, int> m = { {'I',1},{'V',5},{'X',10},{'L',50},{'C',100},{'D',500},{'M',1000} };
	if (s.size() == 0) return 0;
	int result = m[s.at(0)];
	for (auto i = 1; i < s.size(); i++) {
		if (m[s.at(i-1)] >= m[s.at(i)])
			result = result + m[s.at(i)];
		else 
			result = result + m[s[i]] - 2 * m[s[i-1]];
	}
	return result;
}

  感觉要是从后向前遍历可以减少运算次数,因为在遇到减的时候不需要加一次再减两次。但是懒得写了。

  测试代码:

int main()
{
  string s = "DCXXI";
  cout << romanToInt(s) << endl;

  system("pause");
  return 0;
}

  输出结果为:621

转载于:https://www.cnblogs.com/likaiming/p/8072432.html

相关文章:

  • 荣品i.mx6q飞思卡尔工业级核心板开发板高稳定性
  • SoapUI使用中遇到的问题及解决办法
  • 【软工项目组】第十三次会议(样式设计2.0)
  • QGhappy小组第三次作业第十次会议完成情况
  • corethink功能模块探索开发(二)让这个模块可安装
  • [svc]对称加密/非对称加密细枝末节-如何做到数据传输的authentication/data integrity/confidentiality(私密)...
  • 1的个数
  • 机器学习之线性回归
  • [天下小黑盒]打地鼠小助手
  • SDN第四次上机作业
  • 让python和sublime text3结合起来
  • asp.net 初识
  • Spring transaction与EJB transaction的关系
  • (转载)(官方)UE4--图像编程----着色器开发
  • [LOJ#6259]「CodePlus 2017 12 月赛」白金元首与独舞
  • 【Leetcode】104. 二叉树的最大深度
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 30天自制操作系统-2
  • android图片蒙层
  • export和import的用法总结
  • gitlab-ci配置详解(一)
  • php面试题 汇集2
  • scrapy学习之路4(itemloder的使用)
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • 闭包--闭包之tab栏切换(四)
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • Semaphore
  • zabbix3.2监控linux磁盘IO
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ​学习一下,什么是预包装食品?​
  • #if 1...#endif
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (003)SlickEdit Unity的补全
  • (BFS)hdoj2377-Bus Pass
  • (SpringBoot)第七章:SpringBoot日志文件
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (六)c52学习之旅-独立按键
  • (六)vue-router+UI组件库
  • (算法)Game
  • (图)IntelliTrace Tools 跟踪云端程序
  • (一)SpringBoot3---尚硅谷总结
  • (已解决)什么是vue导航守卫
  • .NET 5种线程安全集合
  • .Net CoreRabbitMQ消息存储可靠机制
  • .Net(C#)自定义WinForm控件之小结篇
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .NET的微型Web框架 Nancy
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @GlobalLock注解作用与原理解析
  • @ModelAttribute 注解
  • @RequestMapping 的作用是什么?
  • @我的前任是个极品 微博分析