编程语言
首页 > 编程语言> > 【LeetCode】423. 从英文中重建数字 结题报告 (python)

【LeetCode】423. 从英文中重建数字 结题报告 (python)

作者:互联网

原题地址:https://leetcode-cn.com/problems/reconstruct-original-digits-from-english/

题目描述:

给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。

注意:

输入只包含小写英文字母。
输入保证合法并可以转换为原始的数字,这意味着像 "abc" 或 "zerone" 的输入是不允许的。
输入字符串的长度小于 50,000。
示例 1:

输入: "owoztneoer"

输出: "012" (zeroonetwo)
示例 2:

输入: "fviefuro"

输出: "45" (fourfive)

 

解题方案:

比较暴力的一道题:

class Solution:
    def originalDigits(self, s: str) -> str:
        ret = ""
        nums = [0] * 10
        nums[0] = s.count("z")
        nums[2] = s.count("w")
        nums[4] = s.count("u")
        nums[6] = s.count("x")
        nums[8] = s.count("g")
        nums[7] = s.count("s") - nums[6]
        nums[5] = s.count("f") - nums[4]
        nums[3] = s.count("h") - nums[8]
        nums[1] = s.count("o") - nums[0] - nums[2] - nums[4]
        nums[9] = s.count("i") - nums[5] - nums[6] - nums[8]
        for i in range(0,10):
            ret += str(i) * nums[i]
        return ret
class Solution:
    def originalDigits(self, s: str) -> str:
        n0 = s.count('z')
        n2 = s.count('w')
        n8 = s.count('g')
        n6 = s.count('x')
        n3 = s.count('t') - n2 - n8
        n4 = s.count('r') - n3 - n0
        n7 = s.count('s') - n6
        n1 = s.count('o') - n4 - n2 - n0
        n5 = s.count('v') - n7
        n9 = s.count('i') - n8 - n6 - n5
        
        ns = (n0,n1,n2,n3,n4,n5,n6,n7,n8,n9)
        
        return "".join((str(i)*n for i, n in enumerate(ns)))

 

标签:count,结题,nums,python,n8,str,n0,423,n2
来源: https://blog.csdn.net/qq_32805671/article/details/101053549