劍指offer 2 字串的空格

2021-08-20 08:04:24 字數 1108 閱讀 6561

時間限制:1秒

空間限制:32768k

熱度指數:594664

本題知識點: 字串

知識補充:

stringbuffer物件有乙個tostring()方法,就是將你的快取的字串列印出來,是string型別的

2、單引號和雙引號的區別

3、stringbuffer的常用方法

本人**:

public class solution else

}return strr.tostring();

}}

改進:

考慮空間複雜度,不new物件。

如果不把字串轉換為陣列,直接處理字串也行。使用str.charat也可以對字串進行

遍歷。如果從前向後遍歷,遇到空格就替換成「%20」,那麼其後的字串的內容就會被替換掉,因為沒有開闢新的字串用的是用乙個str。因此如果可以先將字串的長度進行擴充,那麼擴充的部分目前還是空可以存放東西,若從後向前更新字串就不會出現字串被覆蓋消失的問題。

思路二:先計算需要多少空間,然後從後向前遍歷,不斷填充,遇到空格替換成「%20」即可。

public class solution 

}//計算新字串的長度

int newlength = str.length() + 2*num;

//設定兩個指標,乙個是從後向前遍歷字串查詢空格,另乙個是從後向前更新填充後的字串

int indexold = str.length() -1;

int indexnew = newlength - 1;

//擴充字串長度

str.setlength(newlength);

//從後向前遍歷,並進行更新

for(; indexold >=0 && indexnew >= 0; indexold--)else

}return str.tostring();

}}

劍指offer 2替換空格為指定字串

該題是劍指offer的基礎題,輸入乙個字串,裡面有一些空格,將空格填寫 20 這三個字元。然後輸出。下面是簡單 public class test0401 int targetlength usedlength blanknum 2 while usedlength 0 usedlength tar...

劍指offer(2) 替換空格

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

劍指offer 2 替換空格

請實現乙個函式,將乙個字串中的空格替換成 20 usr bin env python coding utf 8 created by xuehz on 2017 8 7 class solution s 源字串 defreplacespace self,s write code here if ty...