劍指Offer 5 替換空格

2021-10-09 07:47:07 字數 877 閱讀 4298

請實現乙個函式,把字串 s 中的每個空格替換成"%20"。

示例 1:

先掃瞄一邊字串, 統計出空格個數

然後定義乙個字元陣列, 長度為(原字串長度 + 2 * 空格數), 因為乙個空格換成"%20", 一變三, 每個空格使新字串長度增加2

然後定義兩個索引, 分別指向(原字串的末尾)和(新字元陣列的末尾)

從右往左掃瞄原字串, 掃瞄到非空格字元就賦值給新字元陣列索引所在位置, 然後兩個索引都往左移一位

掃瞄到空格字元時, 原字串的那個索引直接左移一位, 新字元陣列則依次複製』0』, 『2』, 『%』, 索引左移三位

當兩個索引位置相同時, 則說明空格全都換成"%20"了, 將剩餘字元複製到新字元陣列, 返回即可

class

solution

}// 儲存中間的新字串

char

temp =

newchar

[orilength +

2* spacecount]

;// 原字串的索引

int left = orilength -1;

// 新字元陣列的索引

int right = temp.length -1;

// 保證索引不越界, 且兩個索引未相等

while

(left >=

0&& right >=

0&& left != right)

else

}// 將剩餘字元加進去

while

(left >=

0&& right >=0)

return

newstring

(temp);}

}

劍指offer 5 替換空格

首先遍歷一次字串,記錄字串的實際長度,和空格數目,接著計算出替換後新字串的長度,然後用兩個指標p和q分別指向原字串尾位址和新字串的尾位址,倒序遍歷,遇到空格就讓q向前走三步,否則就讓q p,直到p走到頭。時間複雜度 o n class solution int changelength origin...

劍指offer 5 替換空格

思路1 思路2 1 先遍歷一次字串,這樣就能統計出字串中空格的總數,並可以由此計算出替換之後的字串的總長度。2 從字串的後面開始複製和替換。準備兩個指標,p1和p2。p1指向原始字串的末尾,而p2指向替換之後的字串的末尾。接下來向前移動指標p1,逐個把它指向的字元複製到p2指向的位置,直到碰到第乙個...

劍指offer5 替換空格

請實現乙個函式,把字串中的每個空格替換成 20 你可以假定輸入字串的長度最大是1000。注意輸出字串的長度可能大於1000。樣例 思路 1 思路簡單,看 就懂,碰到空格就替換,python的話也可以直接用str.replace 20 2 若是用陣列或者c語言,這一類,需要先遍歷一遍陣列,計算出有多少...