leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

0423.cpp (731B)


0 class Solution {
1 public:
2 string originalDigits(const string &s) {
3 string word[10] = {"zero", "two", "six", "eight", "three", "seven", "five", "four", "one", "nine"};
4 uint8_t mapping[10] = {0, 2, 6, 8, 3, 7, 5, 4, 1, 9};
5 uint32_t count[26] = {0}, digits[10] = {0};
6 char *letters = "zwxghsvuoi";
7 string res;
9 for (const char c : s)
10 count[c - 'a']++;
11 for (int i = 0; i <= 9; i++) {
12 const int cnt = digits[mapping[i]] = count[letters[i] - 'a'];
13 for (const char c : word[i])
14 count[c - 'a'] -= cnt;
15 }
16 for (int i = 0; i <= 9; i++)
17 res += string(digits[i], '0' + i);
19 return res;
20 }
21 };