热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LeetCode13罗马数字转整数(水题)

特殊规则只有六种情况,只要直接把情况都列举出来即可。只有IXC才会和右边组合,每次遇到这三个,直接检查右边就好了有点慢,但是这

特殊规则只有六种情况,只要直接把情况都列举出来即可。

只有I X C才会和右边组合,每次遇到这三个,直接检查右边就好了

    public int romanToInt(String s) {

        int result = 0;

        for(int i=0,len = s.length();i){

            //只有I X C需要看右边而已
            if(s.charAt(i)==‘I‘){
                if(i==len-1){
                    result+=1;
                }else{
                    if(s.charAt(i+1)==‘V‘){
                        result+=4;
                        i++;
                    }else if(s.charAt(i+1)==‘X‘){
                        result+=9;
                        i++;
                    }else{
                        result+=1;
                    }
                }
            }

            else if(s.charAt(i)==‘X‘){
                if(i==len-1){
                    result+=10;
                }else{
                    if(s.charAt(i+1)==‘L‘){
                        result+=40;
                        i++;
                    }else if(s.charAt(i+1)==‘C‘){
                        result+=90;
                        i++;
                    }else{
                        result+=10;
                    }
                }
            }

            else if(s.charAt(i)==‘C‘){
                if(i==len-1){
                    result+=100;
                }else{
                    if(s.charAt(i+1)==‘D‘){
                        result+=400;
                        i++;
                    }else if(s.charAt(i+1)==‘M‘){
                        result+=900;
                        i++;
                    }else{
                        result+=100;
                    }
                }
            }

            else{

                char temp = s.charAt(i);

                switch (temp){
                    case ‘V‘:result+=5;break;
                    case ‘L‘:result+=50;break;
                    case ‘D‘:result+=500;break;
                    case ‘M‘:result+=1000;break;
                }

            }



        }

        return result;

    }

技术分享图片

有点慢,但是这样写法最清晰。

LeetCode13-罗马数字转整数(水题)


推荐阅读
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • 本文详细介绍了C++中的构造函数,包括其定义、特点以及如何通过构造函数进行对象的初始化。此外,还探讨了转换构造函数的概念及其在不同情境下的应用,以及如何避免不必要的隐式类型转换。 ... [详细]
  • 数据类型--char一、char1.1char占用2个字节char取值范围:【0~65535】char采用unicode编码方式char类型的字面量用单引号括起来char可以存储一 ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ... [详细]
  • 解决Visual Studio Code中PHP Intelephense误报问题
    PHP作为一种高度灵活的编程语言,其代码结构可能导致Intelephense插件在某些情况下报告不必要的错误或警告。自1.3.3版本起,Intelephense引入了多个配置选项,允许用户根据具体的工作环境和编程风格调整这些诊断信息的显示。 ... [详细]
  • 在处理大数据量的SQL分页查询时,通常需要执行两次查询来分别获取数据和总记录数。本文介绍了一种优化方法,通过单次查询同时返回分页数据和总记录数,从而提高查询效率。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 回顾两年前春节期间的一个个人项目,该项目原本计划参加竞赛,但最终作为练习项目完成。独自完成了从编码到UI设计的全部工作,尽管代码量不大,但仍有一定的参考价值。本文将详细介绍该项目的背景、功能及技术实现。 ... [详细]
  • 本文探讨了在一个物理隔离的环境中构建数据交换平台所面临的挑战,包括但不限于数据加密、传输监控及确保文件交换的安全性和可靠性。同时,作者结合自身项目经验,分享了项目规划、实施过程中的关键决策及其背后的思考。 ... [详细]
  • 心理学经典:《思考致富》
    《思考致富》是由美国著名成功学大师拿破仑·希尔撰写的一部重要著作,该书基于希尔长达20年的深入研究和访谈,探讨了个人成功的核心要素。书中不仅揭示了成功的关键,还提供了一系列实用的方法和策略。 ... [详细]
  • 本文将详细介绍如何在二进制和十六进制之间进行准确的转换,并提供实际的代码示例来帮助理解这一过程。 ... [详细]
  • empty,isset首先都会检查变量是否存在,然后对变量值进行检测。而is_null只是直接检查变量值,是否为null,因此如果变量未定义就会出现错误!检测一个变量是否是null ... [详细]
author-avatar
沙尘jr暴的天下
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有