leetcode 5562. 字元頻次唯一的最小刪除次數(C++)
如果字串 s
中 不存在 兩個不同字元 頻次 相同的情況,就稱 s
是 優質字串 。
給你一個字串 s
,返回使 s
成為 優質字串 需要刪除的 最小 字元數。
字串中字元的 頻次 是該字元在字串中的出現次數。例如,在字串 "aab"
中,'a'
的頻次是 2
,而 'b'
的頻次是 1
。
示例 1:
輸入:s = "aab"
輸出:0
解釋:s
已經是優質字串。
示例 2:
輸入:s = "aaabbbcc" 輸出:2 解釋:可以刪除兩個 'b' , 得到優質字串 "aaabcc" 。 另一種方式是刪除一個 'b' 和一個 'c' ,得到優質字串 "aaabbc" 。
示例 3:
輸入:s = "ceabaacb" 輸出:2 解釋:可以刪除兩個 'c' 得到優質字串 "eabaab" 。 注意,只需要關注結果字串中仍然存在的字元。(即,頻次為 0 的字元會忽略不計。)
提示:
1 <= s.length <= 105
s
僅含小寫英文字母
C++
class Solution {
public:
int minDeletions(string s) {
vector<int> tmp(26,0);
int n=s.size();
for(int i=0;i<n;i++) {
tmp[s[i]-'a']++;
}
int ans=0;
vector<int> vec(n+1,0);
for(auto it:tmp) {
if(it) {
vec[it]++;
}
}
for(int i=n;i>0;i--) {
if(vec[i]>1) {
ans+=vec[i]-1;
vec[i-1]+=vec[i]-1;
}
}
return ans;
}
};
相關文章
- 輸出字串中出現次數最多的字元和次數字串字元
- JavaScript統計字元出現的次數JavaScript字元
- Dictionary計算字元出現的次數字元
- LeetCode 每日一題「判定字元是否唯一」LeetCode每日一題字元
- 字串-刪除指定字元字串字元
- 獲取字串中重複次數最多的字元字串字元
- LeetCode 只出現一次的數字LeetCode
- Leetcode刷題之 【最近的請求次數】LeetCode
- JavaScript 刪除重複字元JavaScript字元
- JavaScript刪除字串中的指定字元JavaScript字串字元
- python如何刪除字串的特殊字元Python字串字元
- LeetCode 136. 只出現一次的數字【c++/java詳細題解】LeetCodeC++Java
- 一次Android許可權刪除經歷Android
- 記一次SQL Server刪除SQL調優SQLServer
- LeetCode 只出現一次的數字IIILeetCode
- LeetCode 只出現一次的數字IILeetCode
- 第一次只出現一次的字元字元
- LeetCode19題 刪除連結串列的倒數第N個節點 (c++ 遞迴)LeetCodeC++遞迴
- Python刪除列表中的非字母字元Python字元
- 獲得String字串中某個字元出現的次數字串字元
- 判斷字串中出現最多的字元,並統計次數字串字元
- 前端 JavaScript 獲取字串中重複次數最多的字元前端JavaScript字串字元
- 利用HashMap統計字串各個字元出現的次數HashMap字串字元
- JavaScript 刪除字串重複字元JavaScript字串字元
- LintCode 1905. 字元刪除 Java字元Java
- 記錄一次刪除檔案失敗的問題
- win10批次刪除空資料夾的方法Win10
- 尤拉計劃705:除數序列的逆轉次數
- linux 刪除問題 一次刪除多個目錄下的相同副檔名的檔案Linux
- LeetCode之只出現一次的數字-SwiftLeetCodeSwift
- [LeetCode]1207. 獨一無二的出現次數LeetCode
- LeetCode136 只出現一次的數字LeetCode
- python 統計字串裡某個字元出現的次數count()Python字串字元
- Java小程式--統計指定字串中字元 ‘a’ 出現的次數Java字串字元
- 抵制數豆子:除提交次數外的開源影響力
- JavaScript 刪除字串中所有指定字元JavaScript字串字元
- JavaScript刪除字串中所有指定字元JavaScript字串字元
- JavaScript刪除字串中重複字元JavaScript字串字元