LeetCode 1170. 比较字符串最小字母出现频次
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1170. 比较字符串最小字母出现频次
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
我們來定義一個函數 f(s),其中傳入參數 s 是一個非空字符串;
該函數的功能是統計 s 中(按字典序比較)最小字母的出現頻次。
例如,若 s = “dcce”,那么 f(s) = 2,因為最小的字母是 “c”,它出現了 2 次。
現在,給你兩個字符串數組待查表 queries 和詞匯表 words,請你返回一個整數數組 answer 作為答案,
其中每個 answer[i] 是滿足 f(queries[i]) < f(W) 的詞的數目,W 是詞匯表 words 中的詞。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/compare-strings-by-frequency-of-the-smallest-character
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
class Solution { public:vector<int> numSmallerByFrequency(vector<string>& queries, vector<string>& words) {int count[26] = {0}, i, j, k = 0;vector<int> qc(queries.size()), wc(words.size()), ans(queries.size());for (i = 0; i < queries.size(); ++i){memset(count, 0, 26*sizeof(int));for(j = 0; j < queries[i].size(); ++j){count[queries[i][j]-'a']++;}for(j = 0; j < 26; ++j){if(count[j] != 0){qc[k++] = count[j];//字典序最小的頻數break;}}}k = 0;for (i = 0; i < words.size(); ++i){memset(count, 0, 26*sizeof(int));for(j = 0; j < words[i].size(); ++j){count[words[i][j]-'a']++;}for(j = 0; j < 26; ++j){if(count[j] != 0){wc[k++] = count[j];//字典序最小的頻數break;}}}for (i = 0; i < qc.size(); ++i){k = 0;for(j = 0; j < wc.size(); ++j){if(qc[i] < wc[j])++k;}ans[i] = k;}return ans;} };76 ms 10.9 MB
總結
以上是生活随笔為你收集整理的LeetCode 1170. 比较字符串最小字母出现频次的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 第 186 场周赛(1
- 下一篇: LeetCode 713. 乘积小于K的