【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