leetcodeSolution 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; 8 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); 18 19 return res; 20 } 21 };