04 空格替換

2021-09-19 17:27:50 字數 1214 閱讀 5617

請編寫乙個方法,將字串中的空格全部替換為「%20」。假定該字串有足夠的空間存放新增的字元,並且知道字串的真實長度(小於等於1000),同時保證字串由大小寫的英文本母組成。

給定乙個stringinistring為原始的串,以及串的長度 intlen, 返回替換後的string。

測試樣例:

1."mr john smith」,13     返回:"mr%20john%20smith"

2.」hello world」,12     返回:」hello%20%20world」

public string replacespace(string inistring, int length)
public string replacespace1(string inistring, int length) 

stringbuilder newstr = new stringbuilder();

for (int i = 0; i < inistring.length(); i++) else

} return newstr.tostring();

}

不允許額外開闢空間,如果採取每遇到乙個空格就把空格後的字元往後挪,演算法複雜度無疑太高。

先計算出字串的總長度,遍歷一遍得到空格數,得到替換後的字串長度,然後用兩個指標分別指向原始字串的末尾位置和目標字串的末尾位置(同在這個字元陣列中),由後往前進行複製和替換。這樣做的好處是所有字元都只複製一次。

演算法複雜度為o(n)

public string replacespace2(string inistring, int length) 

int originallength = length;// 實際長度

int numofblack = 0;// 空格數

for (int i = 0; i < length; i++)

// 判斷是否存在空格

if (numofblack > 0) else

} return string.valueof(ch);

} else

}

public string replacespace3(string inistring, int length)

04 替換空格

題目 實現乙個函式,把字串中的每個空格替換成 20 例如 i like it i 20like 20it 思路 如果直接每次遇到空格新增 20 那麼空格後面的數字就需要頻繁向後移動。遇到這種移動問題,我們可以嘗試先給出最終需要的長度,然後從後向前掃瞄,同時給定兩個指標來保證定位。public cla...

劍指offer程式設計題 04 替換空格

寫函式,將字串中的每個空格替換成20 首先找出所有的空格數,然後整體後移,最後填充三個字元 特殊字元可能會無法顯示,需要ascii碼轉換,32空格 include include using namespace std char replacestr char str int length len ...

jquery 替換空格

如果是用php替換所有的空格,可以直接這樣寫 srt str replace str 替換所有的空格.但自己有js這樣 str str.replace 寫替換空格的時候,打乙個空格可以替換,如果打兩個空格以上,就不可以了。js去除空格的方法目前共有12種 實現1 string.prototype.t...