# -*- coding:utf-8 -*-
class solution:
# s 源字串
def replacespace(self, s):
# write code here
temp = ''
for i in s:
if i == ' ':
i = '%20'
temp+=i
return temp
obj = solution()
ret = obj.replacespace(s)
print(ret)
問題1: 替換字串,
是在原來的字串上做替換,
還是新開闢乙個字串做替換!
問題2:在當前字串替換,怎麼替換才更有效率(不考慮現有的replace方法)。
1.從前往後替換,後面的字元要不斷往後移動,要多次移動,所以效率低下
2.從後往前,先計算需要多少空間,然後從後往前移動,則每個字元只為移動一次,這樣效率更高一點。
--------------高階**----------------
02 替換空格
題目描述 解題思路 準備兩個指標,p1和p2。p1指向原始字串的末尾,而p2指向替換之後的字串的末尾。接下來向前移動指標p1,逐個把它指向的字元複製到p2指向的位置,直到碰到第乙個空格為止。接著向前複製,直到碰到第 二 三或第n個空格。計算出替換之後的字串的總長度 int p1 orglen int...
劍指02 替換空格
解法一 呼叫自帶函式str.tostring replace 20 解法二 在當前字串上進行替換。先計算替換後的字串需要多大的空間,並對原字串空間進行擴容 從後往前替換字串的話,所有的字元都只複製 移動 一次,時間複雜度是o n 如果從前往後替換,每個字串需要多次移動,效率較低。解法三 開闢乙個新的...
劍指offer02 替換空格
自己寫的 public class solution return str.tostring 思路 1.統計空格個數count 2.設定新的字串長度newlen 原長度 2 count 3.設定兩個指標,indexold和indexnew,分別指向舊陣列末尾和新陣列末尾,從後向前遍歷。有兩種情況 1...