整数转英文表示

{% blockquote LeetCode https://leetcode-cn.com/problems/integer-to-english-words/ 数转换英文表示 %} 将非负整数转换为其对应的英文表示。 {% endblockquote %}

class Solution:
    def numberToWords(self, num: int) -> str:
        one_to_19 = '''One Two Three Four Five Six Seven Eight Nine Ten Eleven Twelve
            Thirteen Fourteen Fifteen Sixteen Seventeen Eighteen Nineteen'''.split()
        tens = 'Twenty Thirty Forty Fifty Sixty Seventy Eighty Ninety'.split()

       def helper(num):
           if num < 20:
               return one_to_19[num - 1:num]
           elif num < 100:
               return [tens[num // 10 - 2]] + helper(num % 10)
           elif num < 1000:
               return [one_to_19[num // 100 -1]] + ['Hundred'] + helper(num % 100)

           for p,w in enumerate(['Thousand','Million','Billion'],1):
               if num < 1000 ** (p+1):
                   return helper(num//1000**p) + [w] + helper(num % 1000 ** p)

       return ' '.join(helper(num)) or "Zero"

这里做了两个测试,关于 if-elifif...if 的时间,在 Leetcode 上测试的时候,发现 if-elif 的效率是低于两个 if...if 的效率的,具体时候如下:

所以在没有具体的逻辑要求的时候,使用 if...if 代替 if-elif 来提高效率,但是为什么会与我的认知相反呢?很奇怪,有时间希望可以研究一下两个的时间使用效率的差别。

Author
Tags
总结(3) Emacs(2) org mode(4) 年度清单(2) 读书清单(2) 电影清单(2) 电视清单(2) Python(3) 学习计划(1) 子弹笔记(1) 手帐体系(1) 时间管理(1) 时间使用效率(1) 形意拳(1) 知识管理(1) 简历(1) 技能水平(1) 生活(1) 减法生活(1) 阅读(1) 阅读分组(1) org(1) docx(1) markdown(2) cmder(1) 图床(1) jsdelivr(1) github(1) 安卓系统(1) 手动更新手机系统(1) post link(1) post path(1) hexo(2) hugo(2) GitHub Pages(1) travis(1) 自动部署博客(1) presentation(1) gcc(1) g++(1) 默认表格(1) 复杂表格(1) multimd table(1) google adsense(1) evil(1) surround(1) librime(2) emacs-rime(1) liberime(1) dot(1) graphviz(1) use-sub-superscripts(1) ditaa(1) Evil Multiple cursors(1) turn evil mode off(1) modifier keys(1) keymap(1) super(1) hyper(1) install Emacs(1) Mac OS(1) keybinds(1) clocktable(1) coding system(1) image library(1) keybind(1) spacemacs(1) org babel(1) homebrew(1) dd(1) diskutil(1) tmux(1) xcode(1) xcrun(1) node-gyp(1) tar(1) tree(1) pacman(1) plantuml(1) find(1) grep(2) du(1) apt-get(1) apt(1) regex(1) wildcard(1) zsh(1) gdb(1) lsof(1) netstat(1) rebase(2) workflow(1) 工作流(1) .gitignore(1) postbuffer(1) hung up(1) merge(1) cache(1) reset(1) Git(1) command(1) submodule(1) GitHub Pull Request(1) pr(1) Matplotlib(1) beautifusoup(1) 下载小说(1) SOLID(1) Leetcode(2) 透视表(1) read_excel()(1) pandas(1) conda(1) django(1) markdown-deux(1) mysql(1) oracle(1) 模糊查询(1) logging level(1) reflex(1) Field(1) Maven(1) Selenium(1) 下拉框(1) select into(1) insert into select(1) CAST(1) CONVERT(1) timestamp(1) concat(1) concat_ws(1) group_concat(1) union(1) grant privileges(1) 重置 root 密码(1) 报错 10060(1) 清理连接数(1) create user(1) set password(1) exists(1) in(1) markdown-it(1) emoji(1) tasks(1) valine(1) Code 504(1) Hugo(1) theme(1) substring(1) indexOf(1) RegExp(1) 定位节点(1) 正则匹配(1) async(1) 异步请求(1) css(2) layui(1) 滚动条(1) JavaScript(1)