3016 - Minimum Number of Pushes to Type Word II

 JAVA

  • class Solution {
        public int minimumPushes(String word) {
            int[] cnt = new int[26];
            for (int i = 0; i < word.length(); ++i) {
                ++cnt[word.charAt(i) - 'a'];
            }
            Arrays.sort(cnt);
            int ans = 0;
            for (int i = 0; i < 26; ++i) {
                ans += (i / 8 + 1) * cnt[26 - i - 1];
            }
            return ans;
        }
    }

C++

  • class Solution {
    public:
        int minimumPushes(string word) {
            vector<int> cnt(26);
            for (char& c : word) {
                ++cnt[c - 'a'];
            }
            sort(cnt.rbegin(), cnt.rend());
            int ans = 0;
            for (int i = 0; i < 26; ++i) {
                ans += (i / 8 + 1) * cnt[i];
            }
            return ans;
        }
    };

Comments