程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【LeetCode刷題】字符串相關題目(一)——用內置函數實現(附 Python 代碼)

編輯:Python

Python 關於字符串的有很多內置函數,可以用來簡化代碼,實現題目要求。這種方式雖然不鍛煉代碼能力,但代碼簡便,值得總結一下,以備不時之需。

文章目錄

  • 514 反轉字符串②
  • 劍指5 替換空格
  • 151 顛倒字符串中的單詞
  • 劍指58 ②左旋轉字符串
  • 28 實現strStr()
  • 459 重復的子字符串
  • 尾記

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 ,等刷完其他類型的題目,再把這幾道題目不用內置函數重新做一遍。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved