[Leetcode] 423. Reconstruct Original Digits from English 解题报告
来源:互联网 发布:手机网站源码模板 编辑:程序博客网 时间:2024/05/21 10:46
题目:
Given a non-empty string containing an out-of-order English representation of digits 0-9
, output the digits in ascending order.
Note:
- Input contains only lowercase English letters.
- Input is guaranteed to be valid and can be transformed to its original digits. That means invalid inputs such as "abc" or "zerone" are not permitted.
- Input length is less than 50,000.
Example 1:
Input: "owoztneoer"Output: "012"
Example 2:
Input: "fviefuro"Output: "45"
思路:
我刚刚开始觉得这道题目可以用BackTracking的方法来解决,后来发现想复杂了:其实根据0-9的英文字母的构成方式,可以直接推导出各个字母的出现次数。例如,g只会出现在eight中,x只会出现在six中等等。。。这样当建立起来字符串中字符和出现次数的哈希映射之后,我们就可以直接推导出各个英文单词的出现个数。
代码:
class Solution {public: string originalDigits(string s) { map<char, int> letters; vector<int> numbers(10, 0); string ret; for (char c: s) { ++letters[c]; } // we have to follow this order strictly numbers[8] = letters['g']; numbers[6] = letters['x']; numbers[4] = letters['u']; numbers[2] = letters['w']; numbers[0] = letters['z']; numbers[5] = letters['f'] - numbers[4]; numbers[3] = letters['h'] - numbers[8]; numbers[7] = letters['s'] - numbers[6]; numbers[1] = letters['o'] - numbers[0] - numbers[2] - numbers[4]; numbers[9] = letters['i'] - numbers[5] - numbers[6] - numbers[8]; // construct the result for (int i = 0; i < 10; i++) { if (numbers[i] > 0) { ret.insert(ret.end(), numbers[i], '0' + i); } } return ret; }};
阅读全文
0 0
- LeetCode 423. Reconstruct Original Digits from English 解题报告
- [LeetCode] 423. Reconstruct Original Digits from English 解题报告
- [Leetcode] 423. Reconstruct Original Digits from English 解题报告
- LeetCode 423. Reconstruct Original Digits from English解题笔记
- Leetcode 423. Reconstruct Original Digits from English 重构数字 解题报告
- Leetcode 423. Reconstruct Original Digits from English
- 【leetcode】423. Reconstruct Original Digits from English
- [leetcode] 423. Reconstruct Original Digits from English
- LeetCode 423. Reconstruct Original Digits from English
- LeetCode 423. Reconstruct Original Digits from English
- 【LeetCode】 423. Reconstruct Original Digits from English
- [leetcode]423. Reconstruct Original Digits from English
- LeetCode 423. Reconstruct Original Digits from English
- LeetCode 423. Reconstruct Original Digits from English
- Leetcode-423. Reconstruct Original Digits from English
- leetcode 423. Reconstruct Original Digits from English
- LeetCode: Reconstruct Original Digits from English
- LeetCode Reconstruct Original Digits from English
- 关于java继承的一些理解错误
- 虚拟桌面模拟查找点击自绘控件
- 常见的内存错误及对策
- Vi常用快捷键、文件权限操作、查看文件若干命令
- Python动态导入模块
- [Leetcode] 423. Reconstruct Original Digits from English 解题报告
- Linux安装配置memcache
- .Net面试题
- C
- vector迭代器失效的几种情况
- Axure chrome 扩展显示已损坏的解决方法
- 一种在智能对话中实现上下文功能的方法
- php原生提交数据过滤的方法, 防止sql攻击,数据库防护
- 【C++日常】C++动态命名变量名