主要思路: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的那個小朋友要出...