LeetCode273. Integer to English Words
2016-01-17 18:12
316 查看
题目链接:
https://leetcode.com/problems/integer-to-english-words/题目描述:
将整数转化成英语单词字符串For example,
123 -> “One Hundred Twenty Three”
12345 -> “Twelve Thousand Three Hundred Forty Five”
1234567 -> “One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven”
题目分析:
好麻烦啊感觉,自己写的太挫,逻辑之混乱……真的就不贴出来了。谢谢这位大神的,代码还是很简洁哒
http://www.cnblogs.com/grandyang/p/4772780.html
整数有范围限制,按英语的规则来,都是3个一组的读,所以我们也按3个一组分,最多可以分为4组。每次处理一个3位数,根据执行了多少次,后面判断是带“Thousand”还是”Million”还是”Billion”。
主要就是空格的处理,还有就是三位数中有0的时候的处理。当b<20时,可以直接从对应数组取。
代码:
class Solution { public: vector<string> v1={"","One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"}; vector<string> v2={"","","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"}; vector<string> v3={"Hundred","Thousand", "Million", "Billion"}; string numberToWords(int num) { if(num==0){ return "Zero"; } string result=numberToWordsHelper(num%1000); num/=1000; for(int i=1;i<=3;i++){ result=num%1000? numberToWordsHelper(num%1000)+" "+v3[i]+" "+result:result; num/=1000; } while(result.back()==' '){ result.pop_back(); } return result; } string numberToWordsHelper(int num){ string result=""; int a=num/100; int b=num%100; int c=num%10; result= b<20 ? v1[b]:v2[b/10]+(c? " "+v1[c]:""); if(a>0){ result=v1[a]+" "+v3[0]+(b?" "+result:""); } return result; } };
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- android上改变listView的选中颜色
- String.intern
- Prototype源码浅析 String部分(二)
- Ruby中的String对象学习笔记
- PostgreSQL ERROR: invalid escape string 解决办法
- 浅谈C++中的string 类型占几个字节
- 标准C++类string的Copy-On-Write技术
- C++实现string存取二进制数据的方法
- C#中string和StingBuilder内存中的区别实例分析
- PHP STRING 陷阱原理说明
- c#中 String和string的区别介绍
- C#实现的图片、string相互转换类分享
- asp.net String.IsNullOrEmpty 方法
- JavaScript中字符串(string)转json的2种方法
- C#中string用法实例详解
- C#中的DataSet、string、DataTable、对象转换成Json的实现代码
- Javascript实现Array和String互转换的方法