1. 题目

将非负整数转换为其对应的英文表示。可以保证给定输入小于 231 - 1 。

示例 1:
输入: 123
输出: "One Hundred Twenty Three"示例 2:
输入: 12345
输出: "Twelve Thousand Three Hundred Forty Five"示例 3:
输入: 1234567
输出: "One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven"示例 4:
输入: 1234567891
输出: "One Billion Two Hundred Thirty Four Million Five Hundred Sixty Seven Thousand Eight Hundred Ninety One"

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/integer-to-english-words
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 题目不难,对各种情况的考虑需要全面
  • 写的不是很简洁,大家有更简洁的请告之学习观摩
class Solution {unordered_map<int,string> bits = {{1,"One"},{2,"Two"},{3,"Three"},{4,"Four"},{5,"Five"},{6,"Six"},{7,"Seven"},{8,"Eight"},{9,"Nine"},{10,"Ten"},{11,"Eleven"},{12,"Twelve"},{13,"Thirteen"},{14,"Fourteen"},{15,"Fifteen"},{16,"Sixteen"},{17,"Seventeen"},{18,"Eighteen"},{19,"Nineteen"},{20,"Twenty"},{30,"Thirty"},{40,"Forty"},{50,"Fifty"},{60,"Sixty"},{70,"Seventy"},{80,"Eighty"},{90,"Ninety"}};
public:string numberToWords(int num) {if(num == 0)return "Zero";string ans, temp;int i = 0;vector<string> units = {"","Thousand","Million","Billion"};while(num){temp = tran(num%1000);if(temp != "")//三位数都是0,跳过{temp = temp + (i>0 ? (" " + units[i]) : "");ans = " " + temp + ans;}i++;num /= 1000;//每3位一处理}if(ans.front() == ' ')    ans = ans.substr(1);//最前面可能有空格,删除return ans;}string tran(int num)//处理3位数{if(num == 0)return "";string str;int k = num/100;//百位数if(k>0)str = bits[k] + " " + "Hundred";num %= 100;//后两位if(num>0 && num <20)if(str != "")//百位不为空str += " " + bits[num];elsestr = bits[num];else if(num >= 20){k = num/10*10;// k = ?0if(k != 0){if(str != "")//前面不为0str += " " + bits[k];elsestr += bits[k];}num %= 10;//个位if(num > 0)if(str != "")//前面不为0str += " " + bits[num];elsestr += bits[num];}return str;}
};

LeetCode 273. 整数转换英文表示相关推荐

  1. leetcode 273. 整数转换英文表示[困难]

    整数转换英文表示 将非负整数 num 转换为其对应的英文表示. 示例 1: 输入:num = 123 输出:"One Hundred Twenty Three" 示例 2: 输入: ...

  2. Leetcode 273.整数转换英文表示

    整数转换英文表示 将非负整数转换为其对应的英文表示.可以保证给定输入小于 231 - 1 . 示例 1: 输入: 123 输出: "One Hundred Twenty Three" ...

  3. 273. 整数转换英文表示(模拟)

    将非负整数转换为其对应的英文表示.可以保证给定输入小于 231 - 1 . 示例 1: 输入: 123 输出: "One Hundred Twenty Three" 示例 2: 输 ...

  4. 每日一题 11.9 整数转换英文表示

    每日一题 11.9 整数转换英文表示 一.题目概述 这个题是困难的题,第一眼看到这个题还是比较怕的,但是看了一下具体的内容,感觉还好,但是我有点弄不明白的是,英文里最大计数单位是多少,有没有比tril ...

  5. LeetCode-Python-273. 整数转换英文表示

    将非负整数转换为其对应的英文表示.可以保证给定输入小于 231 - 1 . 示例 1: 输入: 123 输出: "One Hundred Twenty Three" 示例 2: 输 ...

  6. 273 Integer to English Words 整数转换英文表示

    将非负整数转换为其对应的英文表示,给定的输入是保证小于 231 - 1 的. 示例: 123 -> "One Hundred Twenty Three" 12345 -> ...

  7. LeetCode 整数转换英文表示(递归)

    将非负整数转换为其对应的英文表示.可以保证给定输入小于 231 - 1 . 示例 1: 输入: 123 输出: "One Hundred Twenty Three" 示例 2: 输 ...

  8. 2022-3-29 Leetcode 06.整数转换

    class Solution {public:int convertInteger(int A, int B) {unsigned long long int C = (unsigned int)A^ ...

  9. [DFA|有限状态机] leetcode 8 字符串转换整数(atoi)

    [DFA|有限状态机] leetcode 8 字符串转换整数(atoi) 1.题目 题目链接 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符, ...

最新文章

  1. hmac-sha1加密算法C源码示例
  2. 并发编程基础篇——第一章(并发相关基础概念理解)
  3. 分析460万份数据发现,女警比男警检查汽车几率少2倍,但发现违禁品还多10%
  4. 函数式编程语言时代已经来临
  5. 大前端晋级系列之-策略模式
  6. Python中深浅拷贝的案例教程
  7. CODEVS-2018-反病毒软件-线段树
  8. java百钱白鸡的算法
  9. HDU - 1796——容斥原理+二进制枚举
  10. SQL的数据定义功能及语句:
  11. Js实现异步刷新(原创)
  12. HTML文件可通过www进行传输,使用 zssh 进行 Zmodem 文件传输
  13. 深入浅出 Javascript API(二)--地图显示与基本操作 转
  14. C++(八)— 死锁原因及解决方法
  15. MATLAB信号与系统分析(三)——连续信号与系统的复频域分析及MATLAB实现
  16. ART艺术作品相关公开数据集
  17. Unity3D游戏开发中相见恨晚的动画插件
  18. 计算机专业线性代数教学大纲,线性代数(专业必修课)教学大纲(2018版)
  19. 页高速缓存(Page Cache)
  20. DP转HDMI/VGA方案设计电路图参考|AG6320参考电路原理图PCB电路图

热门文章

  1. 基于MQTT协议进行应用开发
  2. java socket 对方关闭_java Socket判断对方是否已关闭连接
  3. CentOS6.5安装ElasticSearch6.2.3
  4. 日志配置(springboot、mybatis、Lombok)
  5. 大数据基础篇(一):联机分析处理(OLAP) 与 联机事务处理(OLTP)
  6. 【笔试or面试】金山西山居2014校招笔试题
  7. Oracle存储过程单步调试方法
  8. 如何让new操作符只构造,不申请内存
  9. 服务器开发中网络数据分析与故障排查经验漫谈
  10. MTK 8127平台使用busybox