思路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...