C C 《劍指offer》 (2)替換空格

2021-09-26 01:25:12 字數 1592 閱讀 9344

這種解法在查詢到空格的同時將陣列長度增加,然後將空格後字串元素進行移位處理,但存在重複處理,每發現乙個空格,它後面的字串元素全部得處理,其中包括前面處理過的字串元素,占用時間和資源較多,不建議採用。(後附示意圖及原始碼)

while (i>=0) //對字串進行遍歷

a[j] = '%';;

a[++j] = '2'; //將空格及其後兩位替換為題目要求得「%20」

a[++j] = '0';

l+=2;

} i--;

} printf("for迴圈輸出替換空格後的字串 ");

for (k = 0; k< l ; k++)

printf("\n");

return ;

}int main()

這種解法可以直接發現字串中本來不存在空格的情況 ,避免處理有些字串浪費時間和資源,且避免重複處理。

while (a[i]!='\0') //對字串進行遍歷

i++;

} h = l + j * 2;

d = l + j * 2; //將替換完空格的字串長度賦值給h和d

if (l >= d)

while (l >= 0 && h >= 0)

else

l--;

} printf("for迴圈輸出替換空格後的字串 ");

for (k = 0; k < d; k++)

printf("\n");

}int main()

#include#includeusing namespace std;

class solution

if (length == 0)

while (str[i] != '\0') //對字串進行遍歷

i++;

} h = length + j * 2;

d = length + j * 2; //將替換完空格的字串長度賦值給h和d

if (length >= d)

while (length >= 0 && h >= 0)

else

length--;

} }};int main()

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

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