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

根据字符出现频率排序、从英文中重建数字----2022/4/25

根据字符出现频率排序、从英文中重建数字----2022/4/25

给定一个字符串 s ,根据字符出现的 频率 对其进行 降序排序 。一个字符出现的 频率 是它出现在字符串中的次数。
返回 已排序的字符串 。如果有多个答案,返回其中任何一个。

示例1:

输入: s = "tree"
输出: "eert"
解释: 'e'出现两次,'r'和't'都只出现一次。
因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。

示例2:
输入: s = “cccaaa”
输出: “cccaaa”
解释: 'c’和’a’都出现三次。此外,"aaaccc"也是有效的答案。
注意"cacaca"是不正确的,因为相同的字母必须放在一起。
示例3:
输入: s = “Aabb”
输出: “bbAa”
解释: 此外,"bbaA"也是一个有效的答案,但"Aabb"是不正确的。
注意’A’和’a’被认为是两种不同的字符。
提示:
1 <= s.length <= 5 * 105
s 由大小写英文字母和数字组成

题解1:
简化部分参考

class Solution:
    def frequencySort(self, s: str) -> str:
        utils_dict = {}
        for sub_s in s:
            if sub_s in utils_dict:
                utils_dict[sub_s] += 1
            else:
                utils_dict[sub_s] = 1
        # 简化
        #for i in s:
            #utils_dict[i] = utils_dict.get(i,0)+1
        L = sorted(utils_dict.keys(), key=lambda x :utils_dict[x], reverse=True)
        res = ''
        for i in L:
            res += i * utils_dict[i]
        return res

题解2:
参考

class Solution:
    def frequencySort(self, s: str) -> str:
        li = []
         for i, j in Counter(s).items():
            li.append([i, j])
        new_li = sorted(li, key=lambda x: -x[1])
        return ''.join([i*j for i,j in new_li])

        return ''.join([i*j for i, j in sorted([[i,j] for i, j in Counter(s).items()], key=lambda x:-x[1])])

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/sort-characters-by-frequency
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

从英文中重建数字----2022/4/25

给你一个字符串 s ,其中包含字母顺序打乱的用英文单词表示的若干数字(0-9)。按 升序 返回原始的数字。
示例1:

输入:s = "owoztneoer"
输出:"012"

示例2:

输入:s = "fviefuro"
输出:"45"

提示:
1 <= s.length <= 105
s[i] 为 [“e”,“g”,“f”,“i”,“h”,“o”,“n”,“s”,“r”,“u”,“t”,“w”,“v”,“x”,“z”] 这些字符之一
s 保证是一个符合题目要求的字符串

题解:
参考题解

class Solution:
    def originalDigits(self, s: str) -> str:
        utils_dict = Counter(s)
        # zero one two three four five six seven eight nine
        c0 = utils_dict['z']
        c2 = utils_dict['w']
        c4 = utils_dict['u']
        c6 = utils_dict['x']
        c8 = utils_dict['g']

        c3 = utils_dict['h']-c8
        c5 = utils_dict['f']-c4
        c7 = utils_dict['s']-c6

        c1 = utils_dict['o']-c0-c2-c4
        c9 = utils_dict['i']-c5-c6-c8
        res_list = [c0,c1,c2,c3,c4,c5,c6,c7,c8,c9]
        res = ''
        for i,j in enumerate(res_list):
            res += str(i)*j
        return res

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/reconstruct-original-digits-from-english
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


http://www.kler.cn/a/15027.html

相关文章:

  • 携程API接口系列,酒店景点详情请求示例参考
  • 基于YOLOv8深度学习的无人机航拍小目标检测系统(PyQt5界面+数据集+训练代码)
  • 关于安卓模拟器或手机设置了BurpSuite代理和安装证书后仍然抓取不到APP数据包的解决办法
  • SDIO 和MISC 什么关系
  • 【鸿蒙生态崛起,开发者有哪些机遇与挑战?】HarmonyOS NEXT 引领数字化未来
  • vue2动态导出多级表头表格
  • 直击德国PLS展,联诚发倾力打造沉浸式视觉盛宴!
  • 上传了ipa但iTunes Connect没有构建版本问题
  • 巧用千寻位置GNSS软件|逐点放样应用技巧
  • U盘安装Windows11和ubuntu20.04双系统
  • 如何平衡倾斜摄影的三维模型轻量化数据文件大小和质量效果?
  • 设计模式-门面模式
  • BM38-在二叉树中找到两个节点的最近公共祖先
  • Android 11.0 framework中Launcher的启动流程分析
  • 大数据专业好找工作么
  • Java——两个链表的第一个公共节点
  • 局域网 - CSMA/CD(载波侦听多路访问 / 冲突检测)
  • VBA-自定义面板,使用SQL查询Excel数据
  • 大公司为什么禁止SpringBoot项目使用Tomcat?
  • 记录-使用双token实现无感刷新,前后端详细代码
  • 【PLC】贝加莱PLC理论及操作年度培训
  • 波奇学Linux:Linux的认识和云服务器使用
  • 论文阅读笔记《Grounded Action Transformation for Robot Learning in Simulation》
  • 机器学习(二):线性回归之梯度下降法
  • 【车载以太网测试从入门到精通】——以太网网络管理自动化测试(含CAPL源码)
  • 【C++进阶知识】C++类的继承和派生