423.从英文中重建数字-python
423.从英文中重建数字(中等)
题目大意:给你一个字符串 s ,其中包含字母顺序打乱的用英文单词表示的若干数字(0-9)。按 升序 返回原始的数字。
题目
给你一个字符串 s ,其中包含字母顺序打乱的用英文单词表示的若干数字(0-9)。按 升序 返回原始的数字。
示例1:
1 |
|
示例2:
1 |
|
提示:
- 1 <= s.length <= 105
- s[i] 为 [“e”,”g”,”f”,”i”,”h”,”o”,”n”,”s”,”r”,”u”,”t”,”w”,”v”,”x”,”z”] 这些字符之一
- s 保证是一个符合题目要求的字符串
分析和解答
这种题有一种脑筋急转弯的感觉,每个数字的英文中会有一些特点,这样可以统计出来每个英文字母在哪些数字中出现了,如下图所示。这样可以通过计数的方式来从“出现一次”的分析,例如“x”只在six中出现,之后可以像数独一样链着分析。
统计分析规律,列出每个字母在哪些数字的英文中出现了,然后有些字母实际上只在一个数字中出现了,统计这些字母的个数就是这个数字的个数。然后来有些字母在两个数字中出现的,贪心下
需要注意,尽量避免使用一个字母在一个单词中出现两次的,例如nine中的n
1 |
|
解题:
1 |
|
423.从英文中重建数字-python
http://example.com/2021/11/29/algorithms/leetcode-python/423-从英文中重建数字-python/