劍指Offer 自我總結 2 替換空格

2021-09-29 03:54:19 字數 860 閱讀 4988

請實現乙個函式,將乙個字串中的每個空格替換成「%20」。

有三種方法實現

package com.learn.swordoffer;

public class replacespace_02

//建立新的字串實現,但是不呼叫string方法

public string replacespace2(stringbuffer str) else

}return strstr;

}//不建立新的字串實現,原地替換,o(n)的解法

public string replacespace3(stringbuffer str)

//空格數量

int numofblank = 0;

int len = str.length();

//計算空格數量

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

}//設定字串長度

str.setlength(len + numofblank * 2);

//定義兩個指標

int startindex = len - 1;

int endindex = str.length() - 1;

while (startindex >= 0 && startindex < endindex) else

}return str.tostring();

}public static void main(string args)

}

第一種和第二種方法比較容易實現,面試的時候更多是考察的string.replace()方法原始碼的實現的思路。

參考:

劍指offer 空格替換 2

public class solution 方法二 新建stringbuffer拼接 public class solution else return result.tostring 附加 string 字串常量 string的值是可變的,每次的操作都會建立新的物件,很浪費空間。stringbuf...

LeetCode劍指Offer05 替換空格

leetcode劍指offer05.替換空格 題目 請實現乙個函式,把字串 s 中的每個空格替換成 20 示例 1 題解 1.常規方法 先遍歷一遍陣列,記錄空格的個數count,再擴充套件字元陣列長度為 s.size 2 count 用雙指標從後往前替換空格,乙個指標指向擴充套件前的最後一位,乙個指...

劍指offer(2) 替換空格

假設面試官讓我們在原來的字串上做替換。時間複雜度為o n 的解法。我們可以先遍歷一遍字串,這樣就能統計出字串中空格的總數,並可以由此計算出替換之後的字串的總長度。每替換乙個空格,長度增加2,因此替換以後字串的長度等於原來的長度加上2乘以空格數目。length為牛客系統規定字串輸出的最大長度,固定為乙...