力扣1170.比较字符串最小字母出现频次
-
f()是找最小字母的次数
- 即cnt中第一个出现过的字母
-
将word中所有字符串都处理存入nums
- nums排序 再做二分
-
class Solution {public:int f(string s){int cnt[26] = {0};for(char c:s)cnt[c - 'a'] ++;for(int i=0;i<26;i++) cout<<cnt[i]<<' ';for(int x:cnt)if(x) return x;return 0;}vector<int> numSmallerByFrequency(vector<string>& queries, vector<string>& words) {sort(words.begin(),words.end());vector<int> res,nums;int n = words.size();for(int i=0;i<n;i++)nums.emplace_back(f(words[i]));sort(nums.begin(),nums.end());for(auto &q:queries){int x = f(q);res.emplace_back(nums.end() - ranges::upper_bound(nums,x));}return res;}};