【数据结构与算法】之字符串系列-20240121

在这里插入图片描述


这里写目录标题

  • 一、344. 反转字符串
  • 二、125. 验证回文串
  • 三、205. 同构字符串
  • 四、242. 有效的字母异位词
  • 五、290. 单词规律

一、344. 反转字符串

简单

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。

示例 1:
输入:s = [“h”,“e”,“l”,“l”,“o”]
输出:[“o”,“l”,“l”,“e”,“h”]

示例 2:
输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]
输出:[“h”,“a”,“n”,“n”,“a”,“H”]

def func344(nums):for i in range(len(nums) // 2):nums[i], nums[len(nums) - i - 1] = nums[len(nums) - i - 1], nums[i]return numsnums = ["H", "a", "n", "n", "a", "h"]
res = func344(nums)
print(res)

二、125. 验证回文串

简单
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。字母和数字都属于字母数字字符。
给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false 。

示例 1:
输入: s = “A man, a plan, a canal: Panama”
输出:true
解释:“amanaplanacanalpanama” 是回文串。

示例 2:
输入:s = “race a car”
输出:false
解释:“raceacar” 不是回文串。

示例 3:
输入:s = " "
输出:true
解释:在移除非字母数字字符之后,s 是一个空字符串 “” 。由于空字符串正着反着读都一样,所以是回文串。

class Solution:def func(self, s):s = s.lower()left = 0right = len(s) - 1while left < right:while left < right and not s[left].isalpha():left += 1while left < right and not s[right].isalpha():right -= 1if s[left] != s[right]:return Falseleft += 1right -= 1return Truess = Solution()
s = " "
print(ss.func(s))

三、205. 同构字符串

简单
给定两个字符串 s 和 t ,判断它们是否是同构的。
如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。
每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。

示例 1:
输入:s = “egg”, t = “add”
输出:true

示例 2:
输入:s = “foo”, t = “bar”
输出:false

示例 3:
输入:s = “paper”, t = “title”
输出:true

class Solution:def func205(self,s,t):d={}for i in range(len(s)):if s[i] not in d:if t[i] in d.values():return Falseelse:d[s[i]]=t[i]else:if d[s[i]]!=t[i]:return Falsereturn True
s = "paper"
t = "title"
r=Solution()
print(r.func205(s, t))

四、242. 有效的字母异位词

简单
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。

示例 1:
输入: s = “anagram”, t = “nagaram”
输出: true

示例 2:
输入: s = “rat”, t = “car”
输出: false

class Solution1:def func(self, s, t):ss = Counter(s)tt = Counter(t)if ss == tt:return Truereturn Falses = Solution1()
s1 = "rat"
t1 = "car"
print(s.func(s1, t1))

五、290. 单词规律

简单
给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。
这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。

示例1:
输入: pattern = “abba”, s = “dog cat cat dog”
输出: true

示例 2:
输入:pattern = “abba”, s = “dog cat cat fish”
输出: false

示例 3:
输入: pattern = “aaaa”, s = “dog cat cat dog”
输出: false

class Solution:def func(self,pattern,s):ss=s.split()d={}for i in range(len(pattern)):if pattern[i] not in d:if ss[i] in d.values():return Falseelse:d[pattern[i]]=ss[i]else:if d[pattern[i]]!=ss[i]:return Falsereturn True
r=Solution()pattern = "aaaa"
s = "dog cat cat dog"
print(r.func(pattern, s))

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javaWeb三层架构之学生管理系统

一 系统架构 三层架构 为了实现代码的层次清晰&#xff0c;分工明确&#xff0c;通常会将一个应用划分成三层架构&#xff1a;表示层、业务逻辑层、数据访问层。 * 表示层(web)&#xff1a;主要接收前端发送的请求&#xff0c;并响应数据* 业务逻辑层(service): 负责处理具体的…

Excel 动态可视化图表分享

AIGC ChatGPT 职场案例 AI 绘画 与 短视频制作 PowerBI 商业智能 68集 数据库Mysql 8.0 54集 数据库Oracle 21C 142集 Office 2021实战应用 Python 数据分析实战&#xff0c; ETL Informatica 数据仓库案例实战 Excel 2021实操 100集&#xff0c; Excel 2021函数大全 80集 Exc…

数据结构与算法:图

文章目录 图1) 概念有向 vs 无向度权路径环图的连通性 2) 图的表示3) Java 表示4) DFS5) BFS6) 拓扑排序7) 最短路径DijkstraBellman-FordFloyd-Warshall 8) 最小生成树PrimKruskal 图 1) 概念 图是由顶点&#xff08;vertex&#xff09;和边&#xff08;edge&#xff09;组成…

主板电路学习; 华硕ASUS K43SD笔记本安装win7X64(ventoy)

记录 老爷机 白色 华硕 K43SD 笔记本 安装 win7X64 1. MBR样式常规安装win7X64Sp1 (华硕 K43SD 安装 win7X64 ) 老爷机 白色 华硕 K43SD 笔记本 安装 win7X64 &#xff08;常规安装&#xff09; 设置&#xff1a; 禁用UEFI 启用AHCI ventoy制作MBR&#xff08;非UEFI&#…

《SPSS统计学基础与实证研究应用精解》视频讲解:SPSS数据文件读取

《SPSS统计学基础与实证研究应用精解》4.3 视频讲解 视频为《SPSS统计学基础与实证研究应用精解》张甜 杨维忠著 清华大学出版社 一书的随书赠送视频讲解4.3节内容。本书已正式出版上市&#xff0c;当当、京东、淘宝等平台热销中&#xff0c;搜索书名即可。本书旨在手把手教会使…

电商项目测试实战之购物车页面用例设计【建议收藏】

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

想找一个没有中间商的账户,很简单,昂首资本推给你

各位投资者都知道&#xff0c;交易的成本决定我们是否盈利&#xff0c;那么有没有一个没有中间商的账户呢&#xff1f;当然有了&#xff0c;昂首资本这就推给你。 在交易的时候&#xff0c;银行为投资者提供兑换业务&#xff0c;并从中收取费用。至于经纪商&#xff0c;它是交…

中国电子学会2023年03月份青少年软件编程Scratch图形化等级考试试卷一级真题(含答案)

一、单选题(共25题&#xff0c;共50分) 1.下列说法不正确的是&#xff1f;&#xff08;2分&#xff09; A.可以从声音库中随机导入声音 B.可以录制自己的声音上传 C.可以修改声音的大小 D.不能修改声音的速度 试题解析&#xff1a;针对声音可以进行导入&#xff0c;上传&…

开源模型应用落地-业务整合篇(三)

一、前言 在之前的两篇文章中&#xff0c;我们学习了如何构建基本的即时消息&#xff08;IM&#xff09;功能。今天&#xff0c;我们将进一步将IM模块与AI服务进行连接&#xff0c;实现用户提问并由模型进行回答&#xff0c;最后将结果展示在用户界面上。 二、术语 2.1. Sprin…

sqli-labs通关笔记(less-11 ~ less16)

上一篇文章说了sqli-labs的less-1到less-10的注入方法&#xff0c;这一篇从less-11开始。 由于从11关开始都是post请求&#xff0c;不会像前十关一样存在符号转成url编码的麻烦&#xff0c;所以不再使用apifox&#xff0c;直接从页面上进行测试。 Less-11 老规矩&#xff0c;…

esp32-idf eclipse 分区表(partition table / NVS)的读写demo

前言&#xff1a; 分区表&#xff08;Partition Table&#xff09;和 NVS&#xff08;Non-Volatile Storage&#xff09;是 ESP-IDF 中用于存储数据的两种不同机制。 分区表&#xff08;Partition Table&#xff09;&#xff1a; 分区表定义了将 Flash 存储器划分为不同逻辑分…

什么是浏览器指纹?详解浏览器指纹识别技术,教你防止浏览器指纹识别

在数字时代&#xff0c;我们的在线活动几乎总是留下痕迹。其中&#xff0c;浏览器指纹就像我们的数字身份证&#xff0c;让网站能够识别和追踪用户。对于跨境电商行业来说&#xff0c;了解这种追踪技术尤其重要&#xff0c;因为它可能影响账号的管理和安全。本文将详细介绍浏览…