最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法--

Question : 

Given an integer, convert it to a roman numeral.

Input is guaranteed to be within the range from 1 to 3999.

Anwser 1 :

class Solution {
public:string intToRoman(int num) {// Start typing your C/C++ solution below// DO NOT write int main() function    string res;string symbol[]={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};int value[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};int i = 0;while(num != 0){if(num >= value[i]){    // minus largest numbernum -= value[i];res += symbol[i];} else {i++;   }}return res;}
};

Anwser 2 :

每日一道理
古人云:“海纳百川,有容乃大。”人世间,不可能没有矛盾和争吵,我们要以磊落的胸怀和宽容的微笑去面对它 。哈伯德也曾说过:“宽恕和受宽恕的难以言喻的快乐,是连神明都会为之羡慕的极大乐事。”让我们从宽容中享受快乐,从谅解中体会幸福吧!
class Solution {
public:string intToRoman(int num) {// Start typing your C/C++ solution below// DO NOT write int main() function    char symbol[7] = {'I', 'V', 'X', 'L', 'C', 'D', 'M'};string res = "";int scale = 1000;for (int i = 6; i >= 0; i -= 2){int digit = num / scale;num2roman(digit, res, symbol + i);num %= scale;scale /= 10;}return res;}void num2roman(int num, string& res, char symbols[]){if (num == 0)return;if (num <= 3)res.append(num, symbols[0]);else if (num == 4){res.append(1, symbols[0]);res.append(1, symbols[1]);}else if (num <= 8){res.append(1, symbols[1]);res.append(num - 5, symbols[0]);}else{res.append(1, symbols[0]);res.append(1, symbols[2]);}}
};

文章结束给大家分享下程序员的一些笑话语录: 一位程序员去海边游泳,由于水性不佳,游不回岸了,于是他挥着手臂,大声求.救:“F1,F1!”

转载于:https://www.cnblogs.com/xinyuyuanm/archive/2013/04/21/3034383.html

【leetcode】Integer to Roman相关推荐

  1. 【LeetCode】Integer Break

    这道题我是按照数学的思路进行分析的. 数学感觉上很容易觉得,需要把数字分成相等的几部分,例如(6最好分成(3,3),或者(2,2,2)).</p><p>为什么这么分,以为如果分 ...

  2. 【LeetCode】字符串 string(共112题)

    [3]Longest Substring Without Repeating Characters (2019年1月22日,复习) [5]Longest Palindromic Substring ( ...

  3. 【Leetcode】103. 二叉树的锯齿形层次遍历

    题目 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 ...

  4. 【Leetcode】Palindrome Number

    Determine whether an integer is a palindrome. Do this without extra space. 思路:若使用[Leetcode]Reverse I ...

  5. 【LeetCode】Minimum Depth of Binary Tree 二叉树的最小深度 java

    [LeetCode]Minimum Depth of Binary Tree Given a binary tree, find its minimum depth. The minimum dept ...

  6. 【Leetcode】102. 二叉树的层次遍历

    题目 给定一个二叉树,返回其按层次遍历的节点值. (即逐层地,从左到右访问所有节点). 例如: 给定二叉树: [3,9,20,null,null,15,7], 3/ \9 20/ \15 7 返回其层 ...

  7. 【LeetCode】【HOT】39. 组合总和(回溯)

    [LeetCode][HOT]39. 组合总和 文章目录 [LeetCode][HOT]39. 组合总和 package hot;import java.util.ArrayList; import ...

  8. 【LeetCode】【HOT】347. 前 K 个高频元素(哈希表+优先队列)

    [LeetCode][HOT]347. 前 K 个高频元素 文章目录 [LeetCode][HOT]347. 前 K 个高频元素 package hot;import java.util.Arrays ...

  9. 【LeetCode】【HOT】239. 滑动窗口最大值(双向队列)

    [LeetCode][HOT]239. 滑动窗口最大值 文章目录 [LeetCode][HOT]239. 滑动窗口最大值 package hot;import java.util.Arrays; im ...

最新文章

  1. Cordova各个插件使用介绍系列(七)—$cordovaStatusbar手机状态栏显示
  2. CCNA Cisco 端口配置(上)
  3. @bzoj - 4384@ [POI2015] Trzy wieże
  4. 第九届蓝桥杯 Java B组 第三题 复数幂 (详解)
  5. Spring/SpingMVC常见问题总结
  6. SAP UI5 Model destroy
  7. php ttf 字体 url,window_TTF字体文件如何安装 TTF文件打不开解决方法,TTF文件是Windows系统下的字体文 - phpStudy...
  8. P6046-纯粹容器【数学期望,组合数】
  9. dml语句包括哪些_聊聊MySQL基本操作DDL,DML,DQL,DCL
  10. html加载状态,js等待页面加载完成
  11. discuz中写一个表单,数据存入到数据库中,再从数据库读出来显示在列表中
  12. 数学与编程——统计与编程(均匀分布仿真高斯分布)
  13. Linux内存管理的设计与实现,Linux内核设计与实现-内存管理学习小结
  14. Tomcat部署到CentOS7
  15. 【实用工具】如何录制电脑屏幕gif动图?
  16. RANSAC介绍(Matlab版直线拟合+平面拟合)
  17. 建材物资管理系统(软件定义)
  18. ps cs6选择并遮住在哪
  19. 一天2篇Nature!任职同一高校,这对教授夫妻同时发表2项医学新成果
  20. Linux远程联机服务(二)——Rsh服务器安装与使用详解

热门文章

  1. 字典哈希表的实现原理_GCC中unordered_(multi)set/map的实现原理 (Part 2 图解哈希表结构)...
  2. mysql jion 三张_mysql三张表 left join
  3. php 如何单独刷新模板,反馈一个x-admin模板的问题,点击左侧栏不会刷新右侧栏当前页面的问题,并提供解决方案。...
  4. C++ 移动和获取文件读写指针
  5. MySQL 修改视图
  6. python单元测试框架unittest介绍和使用_Python单元测试框架unittest简明使用实例
  7. linux根目录cat退出,Linux展示cat帮助信息并退出
  8. 计算机没有设置无线临时网络,如何创建临时无线网络
  9. jmu-python-函数-找钱_python函数题 - osc_wv1mxwu2的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. python将Unix时间戳转换成时间