劍指offer(python) 字串類

2021-09-11 04:34:38 字數 2351 閱讀 9640

思路1:直接使用python自帶的replace函式,replace(要替代處,替代品)

class solution:     # s 源字串

def replacespace(self, s):

s = s.replace(' ','%20')

return s

if __name__=='__main__':

s = solution()

class solution:

# s 源字串

def replacespace(self, s):

# write code here

i = 0

n =len(s)

ss=#用於盛放轉化完的字串

for i in range(n):

if s[i].isspace():#判斷是否為空格

else:

i +=1

ss=''.join(ss)#將列表轉成字串

return ss

if __name__=='__main__':

s = solution()

方法3:將長度為1的空格替換為長度為3的「%20」,字串的長度變長。 如果允許我們開闢乙個新的陣列來存放替換空格後的字串,

那麼這道題目就非常簡單。設定兩個指標分別指向新舊字串首元素, 遍歷原字串,如果碰到空格就在新字串上填入「%20」,

否則就複製元字串上的內容。但是如果面試官要求 在原先的字串上操作,並且保證原字串有足夠長的空間來存放替換後的字串,

那麼我們就得另想方法。 首先遍歷原字串,找出字串的長度以及其中的空格數量,

根據原字串的長度和空格的數量我們可以求出最後新字串的長度。

設定兩個指標point1和point2分別指向原字串和新字串的末尾位置。

(這裡為什麼取末尾開始遍歷,而不是取起始開始遍歷,是為了利用point1point2這個判斷條件)

如果point1指向內容不為空格,那麼將內容賦值給point2指向的位置,

如果point1指向為空格,那麼從point2開始賦值「02%」 直到point1point2時表明字串中的所有空格都已經替換完畢。

原文:

class solution:

def replacespace(self, oldstring):

blanknumber = 0#空格的數量

oldstringlen = len(oldstring)#原字串的長度

#遍歷原字串,找出字串的空格數量

for i in range(oldstringlen):

if oldstring[i] == ' ':

blanknumber += 1

#計算新字串的長度

newstringlen = oldstringlen + blanknumber * 2

#宣告新字串列表(因為字串是不可改變的)

newstringlist = [' '] * newstringlen

#設定兩個指標,分別指向那個原字串和新字串的末尾位置

point1 = oldstringlen - 1

point2 = newstringlen - 1

#遍歷替換

while point1 != point2:#如果兩個指標位置不同,則表明沒有替換完成

if oldstring[point1] != ' ':#字元不為空

newstringlist[point2] = oldstring[point1]

point1 -= 1

point2 -= 1

else:

newstringlist[point2] = '0'

newstringlist[point2-1] = '2'

newstringlist[point2-2] = '%'

point1 -= 1

point2 -= 3

#把指標恰好相同時,之前的字元也補上

if point1 > 0:

for i in range(point1,-1,-1):

newstringlist[i] = oldstring[i]

#把字串陣列組合為字串

newstring = ''

for i in range(newstringlen):

newstring += str(newstringlist[i])

return newstring

#測試用例

s = solution()

劍指offer(Python)替換空格

這道題要求是 將乙個字串中的空格替換成 20 有多少個空格就替換成多少個 20 例如 hello world 中間有兩個空格,則需要輸出的形式是 hello 20 20world 字串首尾的空格亦算在內。class solution def replacespace self,s return 20...

劍指offer Python 替換空格

請實現乙個函式,將乙個字串中的每個空格替換成 20 python字串,有replace方法,可以實現替換,第乙個引數是要替換的內容,第二個引數是替換的新內容 能夠快速完成,果然python作為一種高階語言,不太適合做演算法 但是 replace 相當於 insert 在替換 時,會將原字串元素的位置...

《劍指offer》python 動態規劃

動態規劃是利用空間去換取時間的演算法.主要看 1.初始條件 2.重疊子問題 3.狀態轉移方程 題目描述 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 coding utf 8 class solution def jumpfloo...