02 替換空格

2022-02-27 13:31:33 字數 577 閱讀 6354

# -*- 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...