当前位置: 首页 > news >正文

1170. 比较字符串最小字母出现频次

题目

1170. 比较字符串最小字母出现频次 - 力扣(LeetCode)

code

class Solution {
public:
    vector<int> numSmallerByFrequency(vector<string>& queries, vector<string>& words) {
        
        int m1 = queries.size(), m2 = words.size();

        // 计算每个字符串最小字符出现的次数
        auto getCnt = [&](string s)->int{
            sort(s.begin(), s.end());// 升序
            int cnt = count(s.begin(), s.end(), s[0]);
            return cnt;
        };

        vector<int> ans; vector<int> words_cnt;
        for(string word : words){
            int cnt = getCnt(word);
            words_cnt.emplace_back(cnt);
        }

        sort(words_cnt.begin(), words_cnt.end());

        for(string query : queries){
            int cnt = getCnt(query);
            int pos = upper_bound(words_cnt.begin(), words_cnt.end(), cnt) - words_cnt.begin();
            ans.emplace_back(m2 - pos);
            // 可优化成一句话
// ans.emplace_back(m2 - (upper_bound(words_cnt.begin(), words_cnt.end(), getCnt(query)) - words_cnt.begin()));
        }

        return ans;

    }
};

相关文章:

  • 向量元素间是否相等mask矩阵
  • 《Foundation 起步》
  • Linux系统常用命令用法详解
  • 【ROS2】RViz2源码分析(七):DisplaysPanel 中的树状模型/视图
  • 网页五子棋——用户模块
  • Spring Boot 整合 Keycloak
  • 【计算机网络】TCP三次握手
  • GeekPad智慧屏编程控制(三)
  • 光谱相机在天文学领域的应用
  • 【Python爬虫(3)】解锁Python爬虫技能树:深入理解模块与包
  • cursor免费次数用完了怎么再续?以及如何更新机器码?
  • JavaWeb——Servlet基础
  • complete_all 简介
  • 面试真题 | 招银 C++
  • DeepSeek的API密钥怎么使用
  • 【触想智能】工业显示器和普通显示器的区别以及工业显示器的主要应用领域分析
  • Neo4j集群学习
  • C#使用文件读写操作实现仙剑五前传称号存档修改
  • 工作一个月的经历和总结
  • Unity学习part3
  • 知名中医讲师邵学军逝世,终年51岁
  • 新版城市规划体检评估解读:把城市安全韧性摆在更加突出位置
  • 中拉互联网发展与合作论坛在西安开幕
  • 由我国牵头制定,适老化数字经济国际标准发布
  • 日本前卫艺术先驱群展上海:当具体派相遇古树古宅
  • 足球少年郎7月试锋芒,明日之星冠军杯构建顶级青少年赛事