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

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

题目详情

Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.

题目的意思是: 输入一个阿拉伯数字,我们需要输出这个数字的罗马数字表示形式(字符串)。

想法

  • 这道题最重要的点就是理解罗马数和阿拉伯数之间的转换规律。
  • 1000[M],500[D],100[C],50[L],10[X],5[V],1[I]这是基本转换
  • 但是还有一些特殊情况900[CM]:这种情况就是左边的这个罗马字符代表的数、减去右边的这个罗马字符代表的数才得到900。相似的有400[CD],90[XC],40[XL],9[IX],4[IV]

解法

public String intToRoman(int num) {                if(num < 1)return "";        int[] numbers = {1000,900,500,400,100,90,50,40,10,9,5,4,1};        String[] roman = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};        StringBuilder res = new StringBuilder();                for(int i=0;i
= numbers[i]){ num -= numbers[i]; res.append(roman[i]); } } return res.toString(); }

转载地址:http://uuhkl.baihongyu.com/

你可能感兴趣的文章
命令行是你的至交好友
查看>>
Android镜像文件的拆解
查看>>
Structured Streaming Programming Guide
查看>>
Python之数据聚合与分组运算
查看>>
2015级C++第14周程序阅读 STL中的简单容器和迭代器
查看>>
ECS服务器集群
查看>>
android Handler机制之ThreadLocal详解
查看>>
netty tcp 字节有序-&gt;对象有序
查看>>
Factory模式与Prototype模式的异同
查看>>
解析LayoutSubviews
查看>>
[翻译] ASCScreenBrightnessDetector
查看>>
Android 自定义ProgressDialog
查看>>
向前插入迭代器
查看>>
将Button等控件嵌入到repeater中
查看>>
iOS开发CoreAnimation解读之四——Layer层动画内容
查看>>
数据仓库专题(2)-Kimball维度建模四步骤
查看>>
c++.net 托管类封装非托管类
查看>>
剑指offer系列之十:二进制中1的个数
查看>>
对技术的一点点看法
查看>>
用 Dagger 2 实现依赖注入
查看>>