leetcode 3146 两个字符串的排列差

news2024/12/24 11:34:20

leetcode 3146 两个字符串的排列差

  • 正文
    • 题目描述
    • 解题思路
    • 方法1
  • Python 处理字符串的思路
    • 方法2

正文

题目描述

在这里插入图片描述

解题思路

直接 for 循环遍历第一个字符串,在第二个字符串中找出第一个字符串中的对应字符的位置,做差,再取绝对值,最后求和即可。

方法1

class Solution:
    def findPermutationDifference(self, s: str, t: str) -> int:
        sum_ = 0
        for index, char in enumerate(s):
            sum_ += abs(index - t.index(char))

        return sum_

上述代码可以实现目的,但是 index() 方法也是一个遍历的过程,会导致代码需要的时间很长。

Python 处理字符串的思路

Python 中使用字典处理字符串就可以避免使用 index() 进入循环,本题中可以缩减至少一半的时间。

方法2

class Solution:
    def findPermutationDifference(self, s: str, t: str) -> int:
        dict1 = {}
        for i, char in enumerate(s):
            dict1[char] = i
        sum_ = 0
        for i, char in enumerate(t):
            sum_ += abs(i - dict1[char])

        return sum_

上述代码我们用了两次循环,且使用了累加的方式,每次循环进行一次加法运算,这样就会增加时间。

我们可以尝试使用行内循环将累加变成对 generator 对象的一次性求和,可以减少时间,且无需初始化一个额外的变量 sum_

class Solution:
    def findPermutationDifference(self, s: str, t: str) -> int:
        dict1 = {c: i for i, c in enumerate(s)}
        return sum(abs(i - dict1[c]) for i, c in enumerate(t))

如果大家觉得有用,就请点个赞吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2078751.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Clickhouse集群化(三)集群化部署

1. 准备 clickhouse支持副本和分片的能力,但是自身无法实现需要借助zookeeper或者clickhouse-keeper来实现不同节点之间数据同步,同时clickhouse的数据是最终一致性 。 2. Zookeeper 副本的写入流程 没有主从概念 平等地位 互为副本 2.1. 部署zookeep…

高效能低延迟:EasyCVR平台WebRTC支持H.265在远程监控中的优势

TSINGSEE青犀视频EasyCVR视频汇聚平台在WebRTC方面确实支持H.265编码,尽管标准的WebRTC API在大多数浏览器中默认并不支持H.265(也称为HEVC,高效视频编码)编码。EasyCVR平台通过一系列创新的技术手段,实现了在WebRTC协…

区块链应用,密码学会议书籍推荐以及隐私保护知识整理

基于区块链技术的安全多方计算项目示例 1. iCube——全球首个安全多方计算区块链金融项目 iCube团队通过与美国普渡大学区块链人工智能实验室深度合作,实现了区块链的安全多方计算。iCube建立了面向信息的终极抽象基础层和基于个人工智能的算法模型层,…

互联网盲盒小程序,提高企业市场竞争力

盲盒作为一种休闲娱乐的方式,受到了大众的追捧,各大消费者争相购买,市场一时火热非凡! 随着互联网电商的出现,盲盒也开始在线上发展,当消费者距离盲盒门店较远或者没有时间下,就可以在小程序上…

Linux:Socket网络编程

目录 1. 理解源 IP 地址和目的 IP 地址 2:认识端口号 3:端口号范围划分 4:理解源端口号和目的端口号 5:理解Socket(套接字) 6:两个传输协议 (TCP/UDP) 6.1:User Datagram Prot…

重磅!尤文图斯携手Fortinet打造足球界的网络安全堡垒

近日,尤文图斯足球俱乐部与推动网络与安全融合的全球网络安全领导者 Fortinet(NASDAQ:FTNT)正式宣布建立合作伙伴关系,并签署了一项为期至2026年的赞助协议。在此框架下,Fortinet荣膺尤文图斯未来两个赛季的…

深度学习/机器学习软件教学平台

1、基本介绍 机器学习与深度学习教学系统是基于业界应用广泛的在线机器学习和深度学习建模开发框架JupyterLab开发的,面向高校数据分析、机器学习、深度学习,以及人工智能相关专业教学和实训的教学系统。 2、系统特色 系统首页 系统主界面 在线实验界面…

LLM推理端实现

LLM推理端是什么 Large Language Model,大语言模型。典型代表ChatGPT。 推理端:模型训练出来后,用于模型应用和部署的interface。 推理端实现了本地环境中部署大语言模型。可以实现LLM的基本功能,包括生成文本、自动摘要、语言…

目标小程序和当前小程序主体必须为绑定在同一0pen下的相关或关联主体

第一步:登录微信开放平台->账号中心->基本资料->关联主体信息->管理 第二步:管理员微信扫码二维码验证 第三步:管理员微信手机确认 第四步:管理员微信扫码确认后,即可“添加关联主体” 第五步:…

HarmonyOS开发之Gauge(环形图表)的简单使用

效果图: 代码块: Entry Component struct GaugePage {Builder descriptionBuilder() {Text(优).maxFontSize(30).minFontSize(30).fontColor("#fffa2a2d").fontWeight(FontWeight.Medium).width(100%).height("100%").textAlign(Te…

企业数据防泄密刻不容缓|八个措施拒绝泄密

随着信息技术的飞速发展和全球化的推进,企业数据的安全与保密性日益凸显其重要性。数据泄露不仅可能导致企业的核心资产流失、经济损失,还可能严重损害企业的声誉和市场竞争力。因此,建立一套完善的数据防泄密系统,已成为企业维护…

strace 简介和使用

简介 strace是个功能强大的Linux调试分析诊断工具,可用于跟踪程序执行时进程系统调用(system call)和所接收的信号,尤其是针对源码不可读或源码无法再编译的程序。 在Linux系统中,用户程序运行在一个沙箱(sandbox)里,用户进程不…

园区中的智慧用电管理

随着物联网、云平台等新兴信息科技的日益成熟,未来园区用电管理的发展将更加智能化、信息化。近年来,越来越多的能源互联网企业为园区用电管理提供了解决方案,文献[1]提出基于大数据技术设计开发的智能电表远程抄表系统替代传统的人工抄表方法…

常用标准化图像分辨率

常用标准化图像分辨率 标准化图像格式通常指的是将图像数据转换为统一的、标准化的格式,以便于存储、传输和处理。这种格式化过程可能包括调整图像的大小、颜色空间转换、归一化像素值等。 以下是常见标准化图像名称及分辨率(在深度学习和计算机视觉领域…

衡石科技BI的API如何授权文档解析

授权说明​ 授权模式​ 使用凭证式(client credentials)授权模式。 授权模式流程说明​ 第一步,A 应用在命令行向 B 发出请求。 第二步,B 网站验证通过以后,直接返回令牌。 授权模式结构说明​ 接口说明​ 获取a…

【Qt学习】Qlabel 的核心属性 与 代码实例

文章目录 1. 介绍2. 显示文本3. 显示图片4. 设置文本对齐方式5. 设置自动换行、边距、缩进6. 设置伙伴 1. 介绍 在Qt学习的专题中,我们以及多次使用过QLabel,作用就是用于显示文本和图片; QLabel有以下 核心属性: 好的&#xf…

EasyCVR视频汇聚平台:巧妙解决WebRTC无法播放H.265视频的难题

随着科技的飞速发展,视频监控已经成为现代安全管理不可或缺的一部分,广泛应用于智慧工地、智慧煤矿、智慧工厂、智慧社区和智慧校园等多个领域。在这个过程中,视频编码技术和实时通信技术显得尤为重要。EasyCVR视频汇聚平台,凭借其…

Python中的Request请求重试机制例子解析

在Python中,使用Requests库实现请求的重试机制是一种常见的做法,尤其是在面对不稳定的网络环境或服务时。以下是一些实现重试机制的详细例子: 使用Sessions和HTTPAdapter:Requests库中的Session可以存储跨多个请求的共同设置&…

城市内涝积水监测预警系统应对强降雨挑战

近年以来,我国部分地区频繁遭遇强降雨或持续性降水挑战,城市排水系统不堪重负,内涝问题日益凸显,下穿隧道、立交桥下等低洼路段容易产生大量积水,防洪形势刻不容缓。 为有效应对强降雨带来的挑战,国信华源结…

国内十大物联网平台推荐

随着物联网技术的飞速发展,越来越多的企业和开发者开始探索如何利用这一技术来优化产品、提高效率和创造新的商业模式。在中国,众多的物联网平台如雨后春笋般涌现,它们各具特色,为企业提供了丰富的选择。以下是国内十大物联网平台…