程式語言 - LeetCode - C++ - 423. Reconstruct Original Digits from English



參考資訊:
https://www.cnblogs.com/grandyang/p/5996239.html

題目:


解答:

class Solution {
public:
    string originalDigits(string s) {
        vector<int> cnt(26);

        for (char c : s) {
            cnt[c - 'a'] += 1;
        }

        vector<int> d(10);

        d[0] = cnt['z' - 'a'];
        d[2] = cnt['w' - 'a'];
        d[4] = cnt['u' - 'a'];
        d[6] = cnt['x' - 'a'];
        d[8] = cnt['g' - 'a'];

        d[3] = cnt['h' - 'a'] - d[8];
        d[5] = cnt['f' - 'a'] - d[4];
        d[7] = cnt['s' - 'a'] - d[6];

        d[1] = cnt['o' - 'a'] - d[0] - d[2] - d[4];
        d[9] = cnt['i' - 'a'] - d[5] - d[6] - d[8];

        string ans;
        for (int i = 0; i <= 9; ++i) {
            ans += string(d[i], '0' + i);
        }

        return ans;
    }
};