【LeetCode刷题】字符串相关题目(一)——用内置函数实现(附 Python 代码)

Python 关于字符串的有很多内置函数,可以用来简化代码,实现题目要求。这种方式虽然不锻炼代码能力,但代码简便,值得总结一下,以备不时之需。

514 反转字符串②

514 反转字符串②

把字符串转换为列表: list(str)

把列表连成字符串: “”,join(list)

翻转列表:list[::-1]
也可直接翻转字符串:str[::-1]

class Solution:
    def reverseStr(self, s: str, k: int) -> str:
        arr=list(s)
        for i in range(0,len(arr),2*k):
            arr[i:i+k]=arr[i:i+k][::-1]
        return "".join(arr)

注:这里需要把字符串转成list再做操作,
如果不转则会报错 ‘str’ object does not support item assignment
因为字符串是不可变对象,不能用下标赋值的方式去改变字符串。

剑指5 替换空格

剑指offer 05 替换空格

字符串切分:str.split(“x”)
在自己写程序的时候可以使用 re 模块,编写更复杂的切分逻辑

class Solution:
    def replaceSpace(self, s: str) -> str:
        s = s.split(' ') #以空格拆分
        return '%20'.join(s) #字符串连接

151 颠倒字符串中的单词

class Solution(object):
    def reverseWords(self, s):
        s = s.split()
        s = s[::-1]
        return " ".join(s)

拆成列表,然后列表逆序,然后再拼成字符串。

剑指58 ②左旋转字符串

剑指58 ②左旋转字符串

class Solution:
    def reverseLeftWords(self, s: str, n: int) -> str:
        return s[n:]+s[:n]

本质就是字符串切片。

28 实现strStr()

28 实现strStr()

在字符串中查找子字符串:bigStr.find(smallStr)

class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        return haystack.find(needle)

不禁感叹,内置函数真是好东西,救我狗命。

459 重复的子字符串

459 重复的子字符串

class Solution:
    def repeatedSubstringPattern(self, s: str) -> bool:
        return True if s in (s + s)[1:-1] else False

这个思路,真是惊为天人,复制一次,掐头去尾,如果还能搜索到,就说明有重复字符子串。

尾记

立个 flag ,等刷完其他类型的题目,再把这几道题目不用内置函数重新做一遍。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值