首页 > 其他分享 >1170. 比较字符串最小字母出现频次

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

时间:2024-09-09 23:24:47浏览次数:11  
标签:count right nums 1170 List 频次 min words 字符串

题目链接 1170. 比较字符串最小字母出现频次
思路 题意不易理解;排序+二分(upper_bound)
题解链接 Python简洁解法
关键点 预先处理words
时间复杂度 \(O((n+m)p)\)
空间复杂度 \(O(1)\)

代码实现:

class Solution:
    def numSmallerByFrequency(self, queries: List[str], words: List[str]) -> List[int]:
        nums = sorted(
            s.count(min(s)) for s in words
        )
        n = len(nums)

        def upper_bound(val):
            left, right = -1, n
            while left+1<right:
                mid = (left+right) // 2
                if nums[mid] > val:
                    right = mid
                else:
                    left = mid
            return right
        return [
            n-upper_bound(q.count(min(q))) for q in queries
        ]
Python-官方库
class Solution:
    def numSmallerByFrequency(self, queries: List[str], words: List[str]) -> List[int]:
        nums = sorted(
            s.count(min(s)) for s in words
        )
        n = len(nums)
        return [
            n-bisect_right(nums, q.count(min(q))) for q in queries
        ]

标签:count,right,nums,1170,List,频次,min,words,字符串
From: https://www.cnblogs.com/WrRan/p/18405594

相关文章

  • 每日OJ_牛客_单词倒排(字符串模拟)
    目录牛客_单词倒排(字符串模拟)解析代码牛客_单词倒排(字符串模拟)单词倒排__牛客网时间限制:C/C++1秒,其他语言2秒空间限制:C/C++32M,其他语言64M题目描述:对字符串中的所有单词进行倒排。说明:1、构成单词的字符只有26个大写或小写英文字母;2、非构成单词的字符均视为单词......
  • 代码随想录day8-字符串2
    题目1151.反转字符串中的单词*给你一个字符串s,请你反转字符串中单词的顺序。单词是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的单词分隔开。返回单词顺序颠倒且单词之间用单个空格连接的结果字符串。注意:输入字符串s中可能会存在前导空格、尾......
  • 华为OD机试真题-字符串化繁为简-2024年OD统一考试(E卷)
    题目描述给定一个输入字符串Q,字符串只可能由英文字母('a'~''、'^'~'')和左右小括号('、”')组成。当字符里存在小括号时,小括号是成对的,可以有一个或多个小括号对,小括号对不会嵌套,小括号对内可以包含1个或多个英文字母9,也可以不包含英文字母。当小括号对内包含多个英文字......
  • Java----字符串(String)
    一、什么是字符串?定义:字符串是一个或多个字符的序列在java中用char数组来表示字符串,我们可以从源码看到:java对char数组进行了封装,并用String类型来表达字符串,也就是说java程序中所有字符串的文字都被成为此类的对象。#java8源码/**Thevalueisusedforcharacterst......
  • 16.函数--字符串函数
    常用函数:|函数|功能||--------------------------------|--------------------------------||CONCAT(s1,s2,…,sn)|字符串拼接,将s1,s2,…,sn拼接成一个字符串||LOWER(str)......
  • 代码随想录训练营 Day53打卡 图论part04 110. 字符串接龙 105. 有向图的完全可达性 10
    代码随想录训练营Day53打卡图论part04一、卡码110.字符串接龙本题与力扣127题是一样的,所以这里使用力扣127题。字典wordList中从单词beginWord到endWord的转换序列是一个按下述规格形成的序列beginWord->s1->s2->…->sk:    每一对相邻的单词只......
  • Day07 字符串part01| LeetCode 344. 反转字符串,541. 反转字符串II,卡码网:54.替换数字
    反转字符串344.反转字符串classSolution{publicvoidreverseString(char[]s){intlens=s.length;intright,left;if(lens%2!=0)//奇数个{right=lens/2+1;left=lens/2-1......
  • C++字符串中的string类操作
    愿我如星君如月,夜夜流光相皎洁。                           ——《车逍遥篇》【宋】范成大目录正文:主要特点:基本操作: 代码演示:总结:今天我们接着上次的章节继续,这次我们来说一个为解决上个方法的缺陷而诞生......
  • 图论篇--代码随想录算法训练营第五十三天打卡| 110. 字符串接龙,105.有向图的完全可达
    110.字符串接龙题目链接:110.字符串接龙题目描述:字典strList中从字符串beginStr和endStr的转换序列是一个按下述规格形成的序列: 序列中第一个字符串是beginStr。序列中最后一个字符串是endStr。 每次转换只能改变一个字符。 转换过程中的中间字符串必须是字典......
  • C语言练习题--一维、二维字符串数组
    1.下列对C语言字符数组的描述中错误的是(D) A.字符数组可以存放字符串B.字符数组中的字符串可以整体输入、输出C.不可以用关系运算符对字符数组中的字符串进行比较D.可以在赋值语句中通过赋值运算符"="对字符数组整体赋值分析:D只能逐个字符进行复制或者利用字......