LeetCode Integer to English Words
原题链接在这里:https://leetcode.com/problems/integer-to-english-words/
题目:
Convert a non-negative integer to its english words representation. Given input is guaranteed to be less than 231 - 1.
Example 1:
Input: 123
Output: "One Hundred Twenty Three"
Example 2:
Input: 12345
Output: "Twelve Thousand Three Hundred Forty Five"
Example 3:
Input: 1234567
Output: "One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven"
Example 4:
Input: 1234567891
Output: "One Billion Two Hundred Thirty Four Million Five Hundred Sixty Seven Thousand Eight Hundred Ninety One"
题解:
没三个digit分成一个 unit, 用unitNumber 函数把这三位数换算成数字加上对应的unit.
Note: num = 1,000,000时不可以出现 "One Million Thousand"的情况,所以while循环时 要加上if(rest>0)的限定条件.
Time Complexity: O(n), n是unit的个数 Space: O(1).
AC Java:
 public class Solution {
     public String numberToWords(int num) {
         if(num == 0){
             return "Zero";
         }
         String res = "";
         String [] units = {"", " Thousand", " Million", " Billion"};
         int i = 0;
         while(num > 0){
             int unit = num%1000;
             if(unit > 0){ //error 1,000,000
                 res = unitNumber(unit) + units[i] + (res.length() == 0 ? "" : " "+res);
             }
             num = num/1000;
             i++;
         }
         return res;
     }
     private String unitNumber(int unit){
         String res = "";
         String [] ten = {"Zero","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"};
         String [] twenty ={"Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"};
         String [] hundred = {"Zero","Ten","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"};
         int a = unit/100;
         int b = unit%100;
         int c = unit%10;
         if(a > 0){
             res = ten[a] + " Hundred";
         }
         if(b>=10 && b<20){
             if(res.length() != 0){
                 res = res + " ";
             }
             res = res + twenty[b%10];
             return res;
         }else if(b >= 20){
             if(res.length() != 0){
                 res = res + " ";
             }
             b = b/10;
             res = res + hundred[b];
         }
         if(c > 0){
             if(res.length() != 0){
                 res = res + " ";
             }
             res = res + ten[c];
         }
         return res;
     }
 }
LeetCode Integer to English Words的更多相关文章
- [LeetCode] Integer to English Words 整数转为英文单词
		Convert a non-negative integer to its english words representation. Given input is guaranteed to be ... 
- 【LeetCode】Integer to English Words 解题报告
		Integer to English Words [LeetCode] https://leetcode.com/problems/integer-to-english-words/ Total Ac ... 
- 【LeetCode】273. Integer to English Words
		Integer to English Words Convert a non-negative integer to its english words representation. Given i ... 
- [LeetCode] Integer to Roman 整数转化成罗马数字
		Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ... 
- leetcode-【hard】273. Integer to English Words
		题目: 273. Integer to English Words Convert a non-negative integer to its english words representation ... 
- leetcode@ [273] Integer to English Words (String & Math)
		https://leetcode.com/problems/integer-to-english-words/ Convert a non-negative integer to its englis ... 
- [LeetCode] 273. Integer to English Words 整数转为英文单词
		Convert a non-negative integer to its english words representation. Given input is guaranteed to be ... 
- LeetCode 273. Integer to English Words
		原题链接在这里:https://leetcode.com/problems/integer-to-english-words/description/ 题目: Convert a non-negati ... 
- Integer to English words leetcode java
		问题描述: Convert a non-negative integer to its english words representation. Given input is guaranteed ... 
随机推荐
- [shell] if else以及大于、小于、等于逻辑表达式 [转]
			本文也即<Learning the bash Shell>3rd Edition的第五章Flow Control之读书笔记,但我们将不限于此.flow control是任何编程语言中很常用 ... 
- 分享到QQ空间代码(一)
			如何给自己的网站添上"分享到QQ空间"的功能? 只要选择以下代码嵌入自己的网页,即可将网站的信息分享到QQ空间 
- ckeditor的详细配置
			CKEditor 3 JavaScript API Documentation : http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.con ... 
- 网站地图sitemap.xml的格式
			URL列表—XML格式及规范说明: 标签名称 属性 标签说明 标签类型 标签限制 可选/必选 urlset / urlset用来标记整个文档的开头 / / 必选 url / u ... 
- Css - 基础的css阴影效果
			基本的css3阴影效果 width:971px; height:608px; border:1px solid #ccc; background-color:#fff; filter:progid:D ... 
- Java发展史之Java由来
			Java:由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称.Java语言是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由当时任职太阳微系统的 ... 
- 以http形式启动uwsgi服务
			uwsgi yourfile.ini # 配置文件 [uwsgi] http = 127.0.0.1:3106 socket = 127.0.0.1:3006 chdir = /www/student ... 
- UITableview  cell 的多选
			利用NSMutableDictionary key值 来改变cell的状态 -(void)createUI{ table = [[UITableView alloc]initWithFrame:CG ... 
- mysql查询所有字段(*),并且联表时需要特别注意的地方
			如果不标明*是读取哪个表,确实会将所有三个表都读出来.需要小心 
- GUN485项目的总结
			1.DMA中配置要放在串口的配置后面. 2.DMA有3种中断方式:传输完成.传输一半.传输错误 3.如果要用DMA容易造成串口数据还没发完就把485的控制脚拉低导致数据没发完.解决办法是DMA发送完成 ... 
