劍指offer(2) 替換空格

2021-07-12 07:25:41 字數 881 閱讀 7396

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

//length為牛客系統規定字串輸出的最大長度,固定為乙個常數

class

solution

// originallength為字串str的實際長度

int originallength = 0;

int numberofblank = 0;

int i = 0;

while (str[i] != '\0')

++ i;

}// newlength 為把空格替換成'%20'之後的長度

int newlength = originallength + numberofblank *2;

if (newlength > length)

int indexoforiginal = originallength;

int index0fnew = newlength;

while (indexoforiginal >= 0 && index0fnew > indexoforiginal) else

indexoforiginal --;}}

};

有兩個排序的陣列a1和a2,內存在a1的末尾有足夠的空餘空間容納a2。請實現乙個函式,把a2中的所有數字插入到a1中並且所有的數字是排序的。

和前面的例題一樣,很多人首先想到的辦法是在a1中從頭到尾複製數字,但這樣就會出現多次複製乙個數字的情況。跟好的辦法是從尾到頭比較a1和a2中的數字,並把較大的數字複製到a1的合適位置。

劍指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...

劍指Offer 2 替換空格

題目描述 python 實現 coding utf 8 class solution s 源字串 def replacespace self,s write code here count 0 for val in s if val count 1 s new len s count 2 index...

劍指offer 2 替換空格

1.能不能允許連續出現多個空格?2.若有可能連續多個空格,用多個還是單個20 進行替換?1.不會出現連續多個空格 直接用空格將字串切割成陣列,在用20 進行連線。function replacespace str 2.允許出現多個空格,每個空格均用乙個20 替換 用正規表示式找到所有空格依次替換 f...