• [LC] 273. 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"

    class Solution {
         String[] LESS_THAN_20 = {"", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"};
         String[] TENS = {"", "Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"};
         String[] THOUSANDS = {"", "Thousand", "Million", "Billion"};
    
        public String numberToWords(int num) {
            if (num == 0) {
                return "Zero";
            }
            String res = "";
            int i = 0;
            while (num > 0) {
                if (num % 1000 != 0) {
                    res = helper(num % 1000)  + THOUSANDS[i] + " "+ res;
                }
                num /= 1000;
                i += 1;
            }
            return res.trim();
        }
        
        private String helper(int num) {
            if (num == 0) {
                return "";
            }
            if (num < 20) {
                return LESS_THAN_20[num] + " ";
            } else if (num < 100) {
                return TENS[num / 10] + " " +  helper(num % 10);
            } else {
                return LESS_THAN_20[num / 100] + " Hundred " + helper(num % 100);
            }
        }
    }
  • 相关阅读:
    Python基础
    SQL脚本
    PDF技术之-jasperreports的使用
    redis缓存和mysql数据库如何保证数据一致性
    理解MySQL的乐观锁,悲观锁与MVCC
    intellj idea创建maven项目一直处于加载的解决问题
    Linux目录详解,软件应该安装到哪个目录
    总结
    总结
    总结
  • 原文地址:https://www.cnblogs.com/xuanlu/p/12289721.html
Copyright © 2020-2023  润新知