Leetcode数据结构学习day3——字符串1

1. 字符串简介

字符串(String):由零个或多个字符组成的有限序列。

例子:s='hello world''

字符串通常是不可变的,可以通过创建新的字符串来进行操作和修改。

2、常见的字符串操作:

①访问字符串中的字符:使用索引来访问字符串中的单个字符。索引从0开始,例如 s[0] 表示字符串中的第一个字符。

②字符串切片/子串:使用切片操作来获取子串。

使用冒号(:)来指定起始索引和结束索引,例如 s[1:4] 表示从索引1到索引3(不包括索引4)的子串。

③字符串拼接:加号(+),例如 s1 + s2。

④获取字符串长度: len() 函数,例如 len(s) 返回字符串 s 的字符数。

⑤字符串查找:可以使用 in 关键字来检查一个字符串是否包含另一个子串,例如 "abc" in s 判断字符串 s 是否包含子串 "abc"。

⑥字符串替换:可以使用 replace() 方法来替换字符串中的特定子串,例如 s.replace("old", "new") 将字符串 s 中的所有 "old" 替换为 "new"。

3、字符串的比较

字符串之间的比较是通过组成字符串的字符之间的「字符编码」来决定的。例如"abc" < "acd"

4leedcode刷题

125. 验证回文串

题目内容:如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。

字母和数字都属于字母数字字符。

给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false 。

解题思路:

①首先需要解决:移除非字母数字字符串

Python 提供了内置函数 isalpha() 可以用来判断一个字符是否为字母。

Python 提供了内置函数 lower() 可以将大写字母转换为小写。

②遍历比较正反是否相同

class Solution:

    def isPalindrome(self, s: str) -> bool:

        letteronly=''.join(char for char in s if char.isalpha())

        letteronly_1=letteronly.lower()

        for i in range(len(letteronly_1)):

            if letteronly_1[i]!=letteronly_1[len(letteronly_1)-i-1]:

                return False

            else:

                continue

        return True

错了,原因是 isalpha() 只保留字母,应该改用isalnum()保留字母和数字

class Solution:

    def isPalindrome(self, s: str) -> bool:

        letteronly=''.join(char for char in s if char.isalnum())

        letteronly_1=letteronly.lower()

        for i in range(len(letteronly_1)):

            if letteronly_1[i]!=letteronly_1[len(letteronly_1)-i-1]:

                return False

            else:

                continue

        return True

通过!

5、参考资料

03.02.01 字符串基础知识( 第 03 天) (datawhalechina.github.io)

125. 验证回文串 - 力扣(LeetCode)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值