将非负整数转换为其对应的英文表示。可以保证给定输入小于 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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:

根据英文的表达习惯,数字被分为三个三个一组,一般以逗号隔开,比如1,000,000,000。

所以不难发现本题的核心目标就是,将1000以下的整数转换成英文的代码写出来,然后将数字每三个一组,不断重复调用转换代码,最后将答案拼接在一起即可。

难不是很难,但是特别繁琐,注意英语拼写,注意edge case。

class Solution(object):def numberToWords(self, num):""":type num: int:rtype: str"""def helper(num): #本函数用于处理1000 以下的整数转英文n = int(num)num = str(n)if n < 100:return subhelper(num)else:return ["One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"][int(num[0]) - 1] + " Hundred " + subhelper(num[1:]) if num[1:] != "00" else ["One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"][int(num[0]) - 1] + " Hundred"def subhelper(num): #本函数用于处理100 以下的整数转英文n = int(num)l1 = ["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"]l2 = ["Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"]l3 = ["Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"]if n < 10:return l1[int(num)]if 10 <= n < 20:return l2[n - 10]if 20 <= n < 100:return l3[int(num[0]) - 2] + " " + l1[int(num[1])] if num[1] != "0" else l3[int(num[0]) - 2]res = ""if num >= 1000000000:res = helper(str(num)[0]) + " Billion"if str(num)[1:4] != "000":res += " " + helper(str(num)[1:4]) + " Million"if str(num)[4:7] != "000":res += " " + helper(str(num)[4:7]) + " Thousand"if str(num)[7:] != "000":res += " " + helper(str(num)[7:])elif num >= 1000000:res = helper(str(num)[:-6]) + " Million"if str(num)[-6:-3] != "000":res += " " + helper(str(num)[-6:-3]) + " Thousand"if str(num)[-3:] != "000":res += " " + helper(str(num)[-3:])elif num >= 1000:res = helper(str(num)[:-3]) + " Thousand"if str(num)[-3:] != "000":res += " " + helper(str(num)[-3:])else:return helper(str(num))return res

LeetCode-Python-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. LeetCode 273. 整数转换英文表示

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

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

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

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

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

  6. python:整数转换

    整数转换.编写一个函数,确定需要改变几个位才能将整数A转成整数B. 示例1:输入:A = 29 (或者0b11101), B = 15(或者0b01111)输出:2 示例2:输入:A = 1,B = ...

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

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

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

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

  9. python 日期 格式转换 英文_量化数据预处理-中文日期(含)转英文日期

    1.引入 时间是pandas数据的主要索引.中文网站上下载的数据含有中文日期,其中包含年月日.如下图所示: 沪深300指数的数据含有中文,需要处理成python的 datetime格式才能放入回测框架 ...

最新文章

  1. oracle 和 ' 特殊字符处理
  2. OUYA游戏开发核心技术剖析大学霸内部资料
  3. [NET] 如何从 Winform 移植到 Webform [自己搞定HTTP协议]
  4. python编程入门经典 评分-豆瓣评分爆炸!Python+机器学习经典图书
  5. 【转】MySQL分库分表环境下全局ID生成方案
  6. 20160411作业
  7. 低版本webview无法请求jquery ajax
  8. vue项目的骨架及常用组件介绍
  9. Oracle Goldengate在HP平台裸设备文件系统OGG-01028处理
  10. Coolite一个简单例子-GridPanel列表增删改预览
  11. 【数据结构排序】之三选择排序
  12. 代理工具及使用技巧Proxy Hunter
  13. 优化三维空间定位法及C语言快捷实现
  14. 跨域的同时设置headers信息
  15. java小白,随意给出一个三位数的整数,打印显示它的个位数,十位数,百位数的值。
  16. 6.18电子书5折促销
  17. 2022仿淘宝网首页html+css
  18. 论文投稿指南——中文核心期刊推荐(力学)
  19. 操作系统进程完成时间,周转时间,带权周转时间, 平均周转时间, 带权平均周转时间计算
  20. TCP/IP Socket 服务器对接

热门文章

  1. 认知升级篇:为什么我们一定要掌握自学能力?
  2. 1.UEFI-edk2 开发环境搭建
  3. infor接口调用,okhttp不同版本使用
  4. 10-230 查询计算机工程专业学生选修但软件工程专业学生没有选修的课程
  5. 数据结构—串的详细解释(含KMP算法)
  6. 两款Windows系统优化工具
  7. 降低Java垃圾回收开销的5条建议
  8. java 实现文字转语音功能并同时生成语音文件 demo
  9. Linux 命令(208)—— ssh-keygen 命令
  10. 利用python绘制简易词云图(使用jieba进行中文分词)