leedcode_13 罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
字符 数值
I             1
V             5
X             10
L             50
C             100
D             500
M             1000
例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做  XXVII, 即为 XX + V + II 。
通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:
I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。 
C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。
给定一个罗马数字,将其转换成整数。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/roman-to-integer
package www.lin.leetcode;
import java.util.Scanner;
public class Test_13 {
    /**
     * 测试
     * @param args
     */
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        String s=null;
        while (true){
            s=scanner.nextLine();
            if (s.equals("quit")){
                break;
            }
            int i=romanToInt(s);
            System.out.println(i);
        }
    }
    public static int romanToInt(String s) {
        int prenum=toInt(s.charAt(0));
        int sum=0;
        for (int i=1;i<s.length();i++){
            int num=toInt(s.charAt(i));
            if (prenum<num){
                sum=sum-prenum;
            }else {
                sum=sum+prenum;
            }
            prenum=num;
        }
        sum=sum+prenum;
        return sum;
    }
    public static int toInt(char c){
        switch (c){
            case 'I':return 1;
            case 'V':return 5;
            case 'X':return 10;
            case 'L':return 50;
            case 'C':return 100;
            case 'D':return 500;
            default:return 1000;
        }
    }
}
运行结果:

leedcode_13 罗马数字转整数的更多相关文章
- C#版 - Leetcode 13. 罗马数字转整数 - 题解
		C#版 - Leetcode 13. 罗马数字转整数 - 题解 Leetcode 13. Roman to Integer 在线提交: https://leetcode.com/problems/ro ... 
- Leetcode#13. Roman to Integer(罗马数字转整数)
		题目描述 罗马数字包含以下七种字符:I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即 ... 
- 【LeetCode】13. 罗马数字转整数
		题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为 ... 
- Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全  C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数  C# 算法题系列(一) 两数之和、无重复字符的最长子串  DateTime Tips  c#发送邮件,可发送多个附件  MVC图片上传详解
		Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全 Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ... 
- LeetCode 13 Roman to Integer(罗马数字转为整数)
		题目链接 https://leetcode.com/problems/roman-to-integer/?tab=Description int toNumber(char ch) { switc ... 
- C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数
		各位相加 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 输出: 解释: 各位相加的过程为: + = , + = . 由于 是一位数,所以返回 . 进阶:你可以 ... 
- Leecode刷题之旅-C语言/python-13.罗马数字转整数
		/* * @lc app=leetcode.cn id=13 lang=c * * [13] 罗马数字转整数 * * https://leetcode-cn.com/problems/roman-to ... 
- LeetCode:罗马数字转整数【13】
		LeetCode:罗马数字转整数[13] 题目描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 10 ... 
- 13. Roman to Integer[E]罗马数字转整数
		题目 Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from ... 
随机推荐
- MySQL通过bin log日志恢复数据|手撕MySQL|对线面试官
			关注微信公众号[程序员白泽],进入白泽的知识分享星球 前言 作为<手撕MySQL>系列的第二篇文章,今天介绍一下MySQL的二进制日志(bin log),注意不要和MySQL的InnoDB ... 
- Ubuntu20.04 Linux初识
			转至:https://www.cnblogs.com/luomit/p/13857574.html Ubuntu简述 Ubuntu是常见的三大操作系统Windows.MacOS.Linux中,linu ... 
- ansible复习笔记_playbook-从零到无
			--创建时间:2021年3月9日 --修改时间:2021年3月9日 --作者:飞翔的小胖猪 yaml语法格式 每单一文件第一行,使用 "---"开始.在结尾的时候使用三个点&quo ... 
- linux 解决磁盘占用100%
			df -h 查看磁盘使用情况 ll -h 查看文件的大小 使用如下命令查找大于100M的大文件,发现有几个日志文件及临时文件比较大,使用rm –rf删除即可. find / -size +10 ... 
- Python:读取Excel表格时出现的u'\u51c6’ 无法正确显示汉字
			读取Excel后,想显示其中一行的元素,结果读出来是这样[u'\u51c6\u8003\u8bc1\u53f7', u'\u8003\u751f\u59d3\u540d'],始终不显示正常的汉字 依照 ... 
- openpyxl模块的读写使用及mongodb概念
			今日内容概要 openpyxl模块 MongoDB数据库 今日内容详细 openpyxl模块 # 下载 pip3 install openpyxl # 使用 '''openpyxl内部读写也是分离的 ... 
- WPF优秀组件推荐之Stylet(一)
			一.简介 Stylet是基于WPF的一款MVVM组件,虽然WPF本身是自带MVVM功能的,但实现起来不是很方便 ,通过Stylet,用户可以用很少的代码就能享受MVVM带来的舒适体验. 目前Style ... 
- sql数据处理
			安装pymysql 读取数据库数据进行pandas操作,并用seaborn和matplotlib进行画图 
- swoole  聊天室
			1:宝塔终端安装php 2:宝塔终端检测是否安装好 php-v 3:宝塔面板安装swoole扩展,终端检测 php -m 查看扩展 扩展已经安装完毕 
- myBatis plus 去除生成 controller
			 由于我在网上没有找到答案, 所以分享给大家学习, 我也是第一次用 mybtis plus 的新生成器生成代码, 所以基础代码都是在官网复制所得. 在这里也支持大家在解决不了问题时, 可以试着看看源 ... 
