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計算字元出現的次數字元
- ORACLE檢視SQL的執行次數/頻率OracleSQL
- javascript獲取字串中出現次數最多的字元JavaScript字串字元
- 獲取字串中重複次數最多的字元字串字元
- 利用rsync刪除rm -rf 不能一次性刪除的大量檔案
- JavaScript統計字串中字元出現次數JavaScript字串字元
- 字串-刪除指定字元字串字元
- 如何計算字串某個字元出現的次數字串字元
- 如何獲取字串中相同字元出現的次數字串字元
- 統計字串中某個字元出現的次數字串字元
- 記一次SQL Server刪除SQL調優SQLServer
- 第一次只出現一次的字元字元
- 判斷字串中出現最多的字元,並統計次數字串字元
- 前端 JavaScript 獲取字串中重複次數最多的字元前端JavaScript字串字元
- 利用HashMap統計字串各個字元出現的次數HashMap字串字元
- LeetCode 只出現一次的數字LeetCode
- Leetcode刷題之 【最近的請求次數】LeetCode
- LeetCode 每日一題「判定字元是否唯一」LeetCode每日一題字元
- JavaScript 刪除重複字元JavaScript字元
- java請求頻次控制Java
- JavaScript刪除字串中的指定字元JavaScript字串字元
- 一次Android許可權刪除經歷Android
- 記一次刪除資料使用者定位
- EXCEL--一次性刪除所有圖片Excel
- 記錄一次刪除檔案失敗的問題
- 抵制數豆子:除提交次數外的開源影響力
- LeetCode 136. 只出現一次的數字【c++/java詳細題解】LeetCodeC++Java
- Java小程式--統計指定字串中字元 ‘a’ 出現的次數Java字串字元
- 獲得String字串中某個字元出現的次數字串字元
- js如何計算一個字元在字串中出現的次數JS字元字串
- LeetCode 只出現一次的數字IILeetCode
- LeetCode 只出現一次的數字IIILeetCode
- python如何刪除字串的特殊字元Python字串字元
- JavaScript刪除字串中重複的字元JavaScript字串字元