Java实现 LeetCode 273 整数转换英文表示
273. 整数转换英文表示
将非负整数转换为其对应的英文表示。可以保证给定输入小于 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”
class Solution {
       final static String[] zeroToNineteen = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine",
                                        "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen",
                                        "Eighteen", "Nineteen"};
    final static String[] twentyToNinety = {"Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"};
    final int BILLION = 1000000000;
    final int MILLION = 1000000;
    final int THOUSAND = 1000;
    final int HUNDRED = 100;
    public String numberToWords(int num) {
         if (num == 0) return "Zero";
        StringBuilder builder = new StringBuilder();
        if (num >= BILLION) {
            if (builder.length() != 0) builder.append(" ");
            builder.append(numberToWords(num / BILLION)).append(" Billion");
            num %= BILLION;
        }
        if (num >= MILLION) {
            if (builder.length() != 0) builder.append(" ");
            builder.append(numberToWords(num / MILLION)).append(" Million");
            num %= MILLION;
        }
        if (num >= THOUSAND) {
            if (builder.length() != 0) builder.append(" ");
            builder.append(numberToWords(num / THOUSAND)).append(" Thousand");
            num %= THOUSAND;
        }
        if (num >= HUNDRED) {
            if (builder.length() != 0) builder.append(" ");
            builder.append(numberToWords(num / HUNDRED)).append(" Hundred");
            num %= HUNDRED;
        }
        if (num < 20) {
            if (num != 0) {
                if (builder.length() != 0) builder.append(" ");
                builder.append(zeroToNineteen[num]);
            }
        }
        else {
            if (builder.length() != 0) builder.append(" ");
            builder.append(twentyToNinety[num / 10 - 2]);
            if (num % 10 != 0) {
                if (builder.length() != 0) builder.append(" ");
                builder.append(zeroToNineteen[num % 10]);
            }
        }
        return builder.toString();
    }
}
												
											Java实现 LeetCode 273 整数转换英文表示的更多相关文章
- Leetcode 273.整数转换英文表示
		
整数转换英文表示 将非负整数转换为其对应的英文表示.可以保证给定输入小于 231 - 1 . 示例 1: 输入: 123 输出: "One Hundred Twenty Three" ...
 - 273 Integer to English Words 整数转换英文表示
		
将非负整数转换为其对应的英文表示,给定的输入是保证小于 231 - 1 的.示例:123 -> "One Hundred Twenty Three"12345 -> & ...
 - Java实现 LeetCode 8 字符串转换整数(atoi)
		
8. 字符串转换整数 (atoi) 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们寻找到的第一个非 ...
 - [Swift]LeetCode273. 整数转换英文表示 | Integer to English Words
		
Convert a non-negative integer to its english words representation. Given input is guaranteed to be ...
 - Java实现 LeetCode 12 整数转罗马数字
		
12. 整数转罗马数字 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 ...
 - Java实现 LeetCode 7整数反转
		
7. 整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: ...
 - Java实现 LeetCode 756 金字塔转换矩阵(DFS)
		
756. 金字塔转换矩阵 现在,我们用一些方块来堆砌一个金字塔. 每个方块用仅包含一个字母的字符串表示. 使用三元组表示金字塔的堆砌规则如下: 对于三元组(A, B, C) ,"C" ...
 - Java实现 LeetCode 397 整数替换
		
397. 整数替换 给定一个正整数 n,你可以做如下操作: 如果 n 是偶数,则用 n / 2替换 n. 如果 n 是奇数,则可以用 n + 1或n - 1替换 n. n 变为 1 所需的最小替换次数 ...
 - Java实现 LeetCode 343 整数拆分(动态规划入门经典)
		
343. 整数拆分 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 示例 1: 输入: 2 输出: 1 解释: 2 = 1 + 1, 1 × ...
 
随机推荐
- shell 循环结构
			
前言 循环结构在编程中十分常见,也是程序中是较为重要的一部分,在bash中有 for,until,while 这三种语句可以进行重复执行部分程序流程,下面会进一步讨论这三个指令的使用以及注意事项 fo ...
 - 1018 Public Bike Management (30分) 思路分析 + 满分代码
			
题目 There is a public bike service in Hangzhou City which provides great convenience to the tourists ...
 - ObjectOutputStream:对象的序列化流 ObjectInputStream:对象的反序列化流
			
package com.itheima.demo04.ObjectStream; import java.io.FileOutputStream; import java.io.IOException ...
 - [hdu4497]分解质因数
			
题意:求满足gcd(x,y,z)=G,lcm(x,y,z)=L的x,y,z的解的个数. 大致思路:首先如果L % G != 0那么无解,否则令u = L / G,问题变为,gcd(r,s,t)=1,l ...
 - Scrapy 框架 入门教程
			
Scrapy入门教程 在本篇教程中,我已经安装好Scrapy 本篇教程中将带您完成下列任务: 创建一个Scrapy项目 定义提取的Item 编写爬取网站的 spider 并提取 Item 编写 Ite ...
 - HttpServletResponse和HttpServletRequest的简单实用
			
1.HttpServletResponse web服务器接收到客户端的http请求,针对这个请求,分别创建一一个代表请求的HttpServletRequest 对象,代表响应的- -个HttpServ ...
 - block和delegate的选择
			
block和delegate均为常用回调方式 (暂不讨论通知) 代理 优点: 设置某个对象的代理,代理对象可以与被代理对象不直接相关,即使两个对象距离较远,传值也比较方便. 代理方法内可以方便调用 ...
 - 排序算法的总结——Java实现
			
前言 简单归纳一下最近学习的排序算法,如果有什么错误的地方还请大家指教. 本文介绍了七种经典排序算法,包括冒泡排序,选择排序,插入排序,希尔排序,归并排序,快速排序以及堆排序,并且讨论了各种算法的进一 ...
 - 将BeyondCompare设置为TortoiseSVN的扩展比较工具
			
1)点击鼠标右键 -> 点击TortoiseSVN -> Settings,如下图: 2)选择Diff Viewer - > 选择External(并配置好参数),具体如下图: 3) ...
 - MySQL知识-redis实例
			
规划.搭建过程:6个redis实例,一般会放到3台硬件服务器注:在企业规划中,一个分片的两个分到不同的物理机,防止硬件主机宕机造成的整个分片数据丢失.端口号:7000-7005 # 1. 安装集群插件 ...