JAVA Roman to Integer 罗马数转换为int型方法
原题:
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.
罗马数字个位到千位表示方法:
'I','V','X','L','C','D','M' 分别为:1,5,10,50,100,500,1000
对于一个罗马数的字符串,我们只需要用字符串的charAt(int index)方法,对它的每一个数进行判断,总和相加,要注意的是,每逢IV,IX。XL,XC,CD,CM这些数不能直接读取,要判断他们的前一位是否为对应得字符,处理后相加像,这里给出判断方法:
if (i>0&&s.charAt(i-1)=='I') {
result=result+3;
}
else {
result=result+5;
}
比较的是IV这个罗马数。
整个代码如下:
public int romanToInt(String s) {
int result=0;
for (int i = 0; i < s.length(); i++) {
char tail=s.charAt(i);
switch (tail) {
case 'I':result=result+1;
break;
case 'V':if (i>0&&s.charAt(i-1)=='I') {
result=result+3;
}
else {
result=result+5;
}
break;
case 'X':
if (i>0&&s.charAt(i-1)=='I') {
result=result+8;
}
else {
result=result+10;
}
break;
case 'L':
if (i>0&&s.charAt(i-1)=='X') {
result=result+30;
}
else {
result=result+50;
}
break;
case 'C':
if (i>0&&s.charAt(i-1)=='X') {
result=result+80;
}
else {
result=result+100;
}
break;
case 'D':
if (i>0&&s.charAt(i-1)=='C') {
result=result+300;
}
else {
result=result+500;
}
break;
case 'M':
if (i>0&&s.charAt(i-1)=='C') {
result=result+800;
}
else {
result=result+1000;
}
break;
default:
break;
}
}
return result;
}
最后运行结果:
LeetCode提交结果展示:
JAVA Roman to Integer 罗马数转换为int型方法相关推荐
- java 36 进制_数学-在Java中如何将十进制数转换为以36为底的数字?
数学-在Java中如何将十进制数转换为以36为底的数字? 如果我有一个十进制数字,如何在Java中将其转换为以36为基数? slavoj asked 2020-07-13T23:15:07Z 10个解 ...
- 在Java里怎将字节数转换为我们可以读懂的格式?
问题:在Java里怎将字节数转换为我们可以读懂的格式? 在Java里怎将字节数转换为我们可以读懂的格式 像1024应该变成"1 Kb",而1024*1024应该变成"1 ...
- atoi函数:c\c++中把字符串整数转换为int型整数
atoi函数:c\c++中把字符串整数转换为int型整数 atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中.atoi( ) ...
- stoi() 函数----将一个string类型转换为int型
需要的头文件: #include<iostream> 需要的其他东西: using namespace std; 函数的作用: 将一个字符串string类型转换为int 型 用法格式: s ...
- C# ASP.NET 转换为int型的方法 很实用
很多新手在搞c#或者.net开发的时候总会碰到一些小问题,如何知道字符能不能为int型 在这里我写了一个小的函数仅供大家参考: /// <summary>/// 判断是不是int型/// ...
- 在c语言中如何将char型变量转换为int型变量,详解C语言中的char数据类型及其与int类型的转换...
C语言中的char变量 char是C/C++整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed.虽然char在标准中是unsig ...
- leetcode 12 ,13 Integer to Roman amp;amp;Roman to Integer 罗马与阿拉伯数组转换
12 Integer to Roman 13 Roman to Integer 有可能不注意的结果: class Solution {public:/*1.相同的数字连写,所表示的数等于这些数字相加得 ...
- java.lang.math.abs_java.lang.StrictMath.abs(int a)方法实例
全屏 java.lang.StrictMath.abs(int a)方法返回一个int值的绝对值.如果参数不是负数,则返回该参数.如果参数为负数,则返回该参数的负数(负负得为正). 声明 以下是jav ...
- long型转换为int型
一.强制类型转换 Long long = 300000; int i= (int)long; 二.调用intValue()方法 int i= new Long(30000).intValue(); ...
最新文章
- jQuery Pagination分页插件的使用
- 利用Docker构建开发环境
- 电脑罗盘时钟代码_苹果电脑怎么设置数字时钟屏保 Word Clock for Mac安装教程
- Python之删除字符串中不需要的字符
- 一本通 1064:奥运奖牌计数--AC
- (85)FPGA约束有哪些-面试必问(九)(第17天)
- 单文件图片管理php,php封装的单文件(图片)上传类完整实例
- android ImageSwitcher案例
- numpy构建卷积网络
- 战投之王:蔡崇信、刘炽平和刘德的精密战争
- 【阅读百本英文原版书】—为提升英语运用能力—已看完77本
- 使用Python以UCI心脏病数据集为例,进行数据简单分析
- 我的飞桨学习赛:英雄联盟大师预测
- 视觉打标软件 在线视觉打标系统 1.金橙子控制板卡 2.自主研发的定位系统
- 8月顺利拿到OPPO公司Android架构师offer,一面+部长面
- vue全套教程(实操)
- 问题 C: 网格涂色
- QQ浏览器性能提升之路-windows性能分析工具篇
- 智慧书吧经典选集《一个人读书》
- 空间的基,自然基,标准正交基
热门文章
- 获取oracle 表字段描述,几种获取oracle用户表字段信息的方法
- processing python模式添加图片_processing学习整理---Image
- 【小白学习C++ 教程】十三、C++命名空间namespace
- 二十三、 爬取mzsock网站写真社区
- 八十三、Eureka实现相互注册
- 如何在pycharm添加扩张工具
- 一周要回审9000万条视频,内容审核师能被AI拯救吗?
- 最优传输理论和生成模型的几何观点
- 小马智行Pony.ai 2020校招正式开启
- ProjectEuler500 【组合数学】【数论】