• 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"



    牛逼的解法
    using recursion because 每三位的读法是一样的+外加billion million thousands这样的后缀。
        private static final int[] IM = {1000000000, 1000000, 1000, 100, 90, 80, 70, 60, 50, 40, 30, 20, 19, 18, 17, 16, 15, 14,13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
        private static final String[] SM = {"Billion", "Million", "Thousand", "Hundred", "Ninety", "Eighty", "Seventy", "Sixty", "Fifty", "Forty", "Thirty", "Twenty", "Nineteen", "Eighteen", "Seventeen", "Sixteen", "Fifteen", "Fourteen", "Thirteen", "Twelve", "Eleven", "Ten", "Nine", "Eight", "Seven", "Six", "Five", "Four", "Three", "Two", "One"};
    
    
        public String numberToWords(int num) {
            if (num == 0) {
                return "Zero";
            }
            return util(num);
        }
    
        public String util(int num) {
            String ret = "";
            for (int i = 0;i< IM.length;i++) {
                if(num >= IM[i]){
                    ret = (IM[i] >= 100 ? util(num / IM[i]) + " " : "") + SM[i] + " " + util(num % IM[i]);
                    break;
                }
            }
            return ret.trim();
        } 

    reference

    https://leetcode.com/problems/integer-to-english-words/discuss/158134/Shorter-than-the-best-answer.-Pure-recursion

  • 相关阅读:
    六个月的实习
    cookbook学习第二弹
    cookbook学习第一弹
    maketrans translate
    Python strip函数用法小结
    【翻译】How To Tango With Django 1.5.4 第一章
    os相关方法总结
    python基础(一)
    bash快捷键
    Linux基本命令
  • 原文地址:https://www.cnblogs.com/hygeia/p/10042138.html
Copyright © 2020-2023  润新知