劍指Offer 面試題05替換空格

2021-10-23 11:35:30 字數 977 閱讀 7485

劍指offer面試題彙總

題目描述

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

輸入輸出

解決方案

直接替換

return s.replace(

" ",

"%20"

);

不符合題意,題目想說的是用char陣列怎麼實現

雙指標

先計算空格數量

建立乙個新陣列容量加上空格替換字串的長度

p1指向字串尾部

p2指向陣列尾部

從後往前掃瞄字串

public

static string replacespace

(string s)

//陣列生成則是原長度+空格數*2

char

news =

newchar

[s.length()

+count*2]

;//指標p1指向原陣列尾部,指標p2指向新陣列尾部

int p1=olds.length-

1,p2=news.length-1;

//遍歷完陣列

while

(p2>=0)

else

}return string.

valueof

(news)

;}

舉一反三

兩個排序陣列a1和a2,a1有足夠空間容納a2,實現函式將a2插入到a1中去,並且數字是排序的

三個指標

p1指向a1尾巴,p2指向a2尾巴,p3指向a1陣列中加a2下標處

同時從後往前比較

劍指Offer 面試題05 替換空格

請實現乙個函式,把字串 s 中的每個空格替換成 20 示例 1 限制 0 s 的長度 10000 暴力方法,從前向後遍歷,遇到空格就替換,則每次替換需要移動空格後面o n 個字元,所以總時間複雜度為o n 2 我們可以先計算出空格數,然後可得替換後新串總長度,設兩個指標i和j分別指向原來字串末尾和新...

劍指offer 面試題05 替換空格為20

替換空格 請實現乙個函式,把字串 s 中的每個空格替換成 20 示例 1 限制 0 s 的長度 10000 解題思路 1.利用c 11 以後遍歷容器的方法 for auto a s res 為新建的string class solution return res 2.一般像這種需要向後擴充容量重新整...

劍指offer面試題 替換空格

題目 請實現乙個函式,把字串中的每個空格替換成 20 例如輸入 則輸出 解析 時間複雜度為o n 的解法。完整 及測試用例實現 cpp view plain copy include using namespace std include length 為字元陣列string的總容量 void re...