1347. 制造字母异位词的最小步骤数 (中等,Counter)

闲来无事,今天多做一题

  1. 条件很宽,可以任意替换,且排列相同也可以
  2. 所以只要统计每个字母在 s 中比在 t 中多出现的次数之和即可
python 复制代码
class Solution:
    def minSteps(self, s: str, t: str) -> int:
        n = [0] * 26
        for i in s:
            n[ord(i) - ord('a')] += 1
        
        for i in t:
            n[ord(i) - ord('a')] -= 1

        return sum([n[i] if n[i] > 0 else 0 for i in range(26)])

学习

  1. python 求字符的 ASCII码 需要使用内置函数 ord()
  2. python 有一个collections.Counter模块,它可以直接统计一个字符串中字符出现的次数,且它返回一个 dict() 的子类,形式上是字典,但是支持加减法操作,加法就是把同键的加起来,不同键的并到新的字典中;减法把同键的相减(且它会删去做减法后值小于等于0的键值对,本来就是计数的效果,小于等于0了自然没意义了),不同键的键值对则保留被减数的,去除减数的,因此本题可以写成如下形式
python 复制代码
class Solution:
    def minSteps(self, s: str, t: str) -> int:
        return sum((Counter(s) - Counter(t)).values())
相关推荐
圣光SG7 小时前
Java操作题练习(七)
java·开发语言·算法
_Jimmy_7 小时前
Agent 溯源精度提升方案
人工智能·python·langchain
Cx330_FCQ8 小时前
Tmux使用
服务器·git·算法
SamChan909 小时前
在Web应用中集成PDF多语言翻译功能:PDFTranslator API实战指南
前端·python·ai·pdf·yapi·机器翻译
天天进步20159 小时前
Python全栈项目--智能办公自动化系统
开发语言·python
拳里剑气9 小时前
C++算法:多源BFS
c++·算法·宽度优先·多源bfs
颜酱9 小时前
09 | 重构项目结构
人工智能·python·langchain
ysa05103010 小时前
【板子】短序列dp(换成维护更小常数维度的dp)
c++·笔记·算法·板子
shwill12310 小时前
PID 算法(三)--- 增量 PID ↔ 单神经元 PID 等价映射
linux·算法
kisloy10 小时前
【爬虫入门第8讲】Python爬虫反爬入门
开发语言·爬虫·python