leetcode:Integer to English Words
来源:互联网 发布:天天向上网络版权费 编辑:程序博客网 时间:2024/05/16 13:02
Convert a non-negative integer to its english words representation. Given input is guaranteed to be less than 231 - 1.
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"
Hint:
- Did you see a pattern in dividing the number into chunk of words? For example, 123 and 123000
class Solution {private: string getNum1(int num) { string retString = ""; switch (num) { case 1: retString = "One"; break; case 2: retString = "Two"; break; case 3: retString = "Three"; break; case 4: retString = "Four"; break; case 5: retString = "Five"; break; case 6: retString = "Six"; break; case 7: retString = "Seven"; break; case 8: retString = "Eight"; break; case 9: retString = "Nine"; break; } return retString; } string getNum2(int num) { string retString = ""; switch (num) { case 2: retString = "Twenty"; break; case 3: retString = "Thirty"; break; case 4: retString = "Forty"; break; case 5: retString = "Fifty"; break; case 6: retString = "Sixty"; break; case 7: retString = "Seventy"; break; case 8: retString = "Eighty"; break; case 9: retString = "Ninety"; break; } return retString; } string getWords(int num) { string retString = ""; if (num >= 100) { retString = getNum1(num/100) + " Hundred"; num = num % 100; } if (num >= 10 && num < 20) { if (retString.size() > 0) retString = retString + " "; if (num == 10) retString = retString + "Ten"; else if (num == 11) retString = retString + "Eleven"; else if (num == 12) retString = retString + "Twelve"; else if (num == 13) retString = retString + "Thirteen"; else if (num == 14) retString = retString + "Fourteen"; else if (num == 15) retString = retString + "Fifteen"; else if (num == 16) retString = retString + "Sixteen"; else if (num == 17) retString = retString + "Seventeen"; else if (num == 18) retString = retString + "Eighteen"; else if (num == 19) retString = retString + "Nineteen"; return retString; } else if (num >= 20) { if (retString.size() > 0) retString = retString + " "; retString = retString + getNum2(num/10); num = num % 10; } if (num > 0) { if (retString.size() > 0) retString = retString + " "; retString = retString + getNum1(num); } return retString; } string getUnit(int i) { switch(i) { case 0: return ""; break; case 1: return " Thousand"; break; case 2: return " Million"; break; case 3: return " Billion"; break; } return ""; } public: string numberToWords(int num) { if (num == 0) return "Zero"; string retString = ""; for (int i=0; num>0; i++) { int remain = num % 1000; num = num / 1000; if (remain != 0) { if (retString.size() == 0) retString = getWords(remain) + getUnit(i); else retString = getWords(remain) + getUnit(i) + " " + retString; } } return retString; }};
0 0
- leetcode - Integer to English Words
- [leetcode] Integer to English Words
- Integer to English Words -- leetcode
- [LeetCode] Integer to English Words
- LeetCode -- Integer to English Words
- 【LeetCode】Integer to English Words
- LeetCode Integer to English Words
- Leetcode: Integer to English Words
- leetcode:Integer to English Words
- 【LeetCode】Integer to English Words
- [leetcode] 273.Integer to English Words
- [leetcode-273]Integer to English Words(java)
- [leetcode 273]Integer to English Words
- LeetCode-Integer to English Words-解题报告
- leetcode刷题-Integer to English Words
- LeetCode之Integer to English Words
- 【LeetCode】Integer to English Words 解题报告
- LeetCode 题解(210) : Integer to English Words
- 动态规划——小胖办证
- poj 2002 hash(平面上若干点能够成多少正方形)
- leetcode: Basic Calculator
- s3c2440时钟+nandflash拷贝至SDRAM+开启mmu
- 冥想
- leetcode:Integer to English Words
- 新手
- ubuntu 安装配置 JDK
- leetcode:Remove Invalid Parentheses
- android studio中做断点测试
- Java设计模式(二十二)----调停者模式
- 【C语言】C语言常量和变量
- SERDES总结
- 【翻译自mos文章】在Oracle 12c中建立用户--避免ORA-65096 or ORA-65049错误