1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        ?LeetCode刷題實戰(zhàn)273:整數(shù)轉(zhuǎn)換英文表示

        共 3883字,需瀏覽 8分鐘

         ·

        2021-05-29 07:18

        算法的重要性,我就不多說了吧,想去大廠,就必須要經(jīng)過基礎(chǔ)知識和業(yè)務邏輯面試+算法面試。所以,為了提高大家的算法能力,這個公眾號后續(xù)每天帶大家做一道算法題,題目就從LeetCode上面選 !

        今天和大家聊的問題叫做 整數(shù)轉(zhuǎn)換英文表示,我們先來看題面:
        https://leetcode-cn.com/problems/integer-to-english-words/
        Convert a non-negative integer num to its English words representation.
        將非負整數(shù) num 轉(zhuǎn)換為其對應的英文表示。

        示例


        示例 1

        輸入:num = 123
        輸出:"One Hundred Twenty Three"

        示例 2

        輸入:num = 12345
        輸出:"Twelve Thousand Three Hundred Forty Five"

        示例 3

        輸入:num = 1234567
        輸出:"One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven"

        示例 4

        輸入:num = 1234567891
        輸出:"One Billion Two Hundred Thirty Four Million Five Hundred Sixty Seven Thousand Eight Hundred Ninety One"


        解題


        這個是網(wǎng)上比較好理解的了 。

        class Solution {
            private final String[] THOUSAND = {"", "Thousand", "Million", "Billion"};
            private final String[] LESS_THAN_TWENTY = {"", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"};
            private final String[] HUNDRED = {"", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"};
            public String numberToWords(int num) {
                if(num == 0) return "Zero";

                StringBuilder sb = new StringBuilder();
                int index = 0;
                while(num > 0) {
                    if(num % 1000 != 0) {
                        StringBuilder tmp = new StringBuilder();
                        helper(num % 1000, tmp);
                        sb.insert(0, tmp.append(THOUSAND[index]).append(" "));
                    }
                    index++;
                    num /= 1000;
                }
                return sb.toString().trim();
            }

            private void helper(int num, StringBuilder tmp) {
                if(num == 0) return;
                if(num < 20) {
                    tmp.append(LESS_THAN_TWENTY[num]).append(" ");
                }else if(num < 100) {
                    tmp.append(HUNDRED[num / 10]).append(" ");
                    helper(num % 10, tmp);
                }else {
                    tmp.append(LESS_THAN_TWENTY[num / 100]).append(" Hundred").append(" ");
                    helper(num % 100, tmp);
                }
            }
        }


        好了,今天的文章就到這里,如果覺得有所收獲,請順手點個在看或者轉(zhuǎn)發(fā)吧,你們的支持是我最大的動力 。

        上期推文:

        LeetCode1-260題匯總,希望對你有點幫助!
        LeetCode刷題實戰(zhàn)261:以圖判樹
        LeetCode刷題實戰(zhàn)262:行程和用戶
        LeetCode刷題實戰(zhàn)263:丑數(shù)
        LeetCode刷題實戰(zhàn)264:丑數(shù) II
        LeetCode刷題實戰(zhàn)265:粉刷房子II
        LeetCode刷題實戰(zhàn)266:回文排列
        LeetCode刷題實戰(zhàn)267:回文排列II
        LeetCode刷題實戰(zhàn)268:丟失的數(shù)字
        LeetCode刷題實戰(zhàn)269:火星詞典
        LeetCode刷題實戰(zhàn)270:最接近的二叉搜索樹值


        瀏覽 38
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            999精品视频在线 | 人人人人干 | 特黄60分钟免费视频 | 日向雏田裸体 | 美女小嫩逼 | 日本级婬片A片AAA毛片炙热 | 人人干人人操超碰 | 国产一级大片免费看 | 《乳色吐息》无删减 | 国产精品久久久久久久下载地址 |