劍指offer by Python 替換空格

2022-09-01 21:18:18 字數 1631 閱讀 5983

主要思路:1.用python字串的replace方法。

2.對空格split得到list,用『%20』連線(join)這個list

3.由於替換空格後,字串長度需要增大。先掃瞄空格個數,計算字串應有的長度,從後向前乙個個字元複製(需要兩個指標)。這樣避免了替換空格後,需要移動的操作。

複雜度:o(n)

#

-*- coding:utf-8 -*-

class

solution:

#s 源字串

defreplacespace(self, s):

#write code here

return s.replace('

', '

%20')

#

-*- coding:utf-8 -*-

class

solution:

#s 源字串

defreplacespace(self, s):

num_space =0

for i in

s:

if i == '':

num_space += 1new_length = len(s) + 2 *num_space

index_origin = len(s) - 1index_new = new_length - 1new_string = [none for i in

range(new_length)]

while index_origin >= 0 & (index_new >index_origin):

if s[index_origin] == '':

new_string[index_new] = '0'

index_new -= 1new_string[index_new] = '2'

index_new -= 1new_string[index_new] = '%'

index_new -= 1

else

: new_string[index_new] =s[index_origin]

index_new -= 1index_origin -= 1

return

''.join(new_string)

if__name__ == '

__main__':

a =solution()

print(a.replacespace('

r y uu

'))

#

-*- coding:utf-8 -*-

class

solution:

#s 源字串

defreplacespace(self, s):

return

'%20

'.join(s.split(''))

if__name__ == '

__main__':

a =solution()

print(a.replacespace('

r y uu

'))

注意:邏輯與和比較運算子的優先順序

劍指offer全套解答 劍指offer 1 5

1.二維陣列中的查詢 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。public class solution int n array 0 length i...

劍指offer全套解答 劍指offer 36 45

36.兩個鍊錶的第乙個公共節點 輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 public class solution return p 37.數字在排序陣列 現的次數 統計乙個數字在公升序陣列 現的次數。publi...

劍指offer全套解答 劍指offer 46 55

46.孩子們的遊戲 圓圈中最後剩下的數 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。hf作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的 首先,讓小朋友們圍成乙個大圈。然後,他隨機指定乙個數m,讓編號為0的小朋友開始報數。每次喊到m 1的那個小朋友要出...