每日一練 字串的空格替換

2021-08-20 07:34:26 字數 733 閱讀 9690

內容:

解題思路:

首先將字串遍歷一遍,統計出字串中空格的數量,並由此計算出替換後字串的總長度。每替換乙個空格,長度加2,因此替換後的長度等於空格數*2。我們從字串的後面開始替換。首先準備兩個指標:p1和p2。p1指向原始字串的末尾,p2指向替換後的字串的末尾,然後向前移動p1,逐個把它指向的字串複製到p2指向的位置,直到第乙個空格為止。碰到第乙個空格後把p1向前移動1格,在p2之前插入「%20」。由於插入的長度為3,所以要把p2移動3格。接著在向前複製,直到碰到第二個空格,當p1和p2指向同一位置,表面所有空格都替換完了。

所有的字元都只複製一次,演算法的時間效率是o(n).

**實現:

#include#include#include#pragma warning(disable:4996)

void replace_str(char *dest,int len)

int newlength = i + 2 * num; //替換後的總長度

if (newlength > len) //len為陣列總長度

return;

int length = i; //原始字串長度

while (length >= 0 && newlength else

dest[newlength--] = dest[length];

length--; }}

int main()

字串替換空格

點 抽象問題簡化問題 題意 乙個字串,比如 aaa baea erwe dsa dsa f a 替換其中的空格字元為 20 劍指offer面試題4 思路 這個問題的點在於,如果正常從頭到尾替換的話,每乙個被替換空格,它後面的全部字串都需要做整體移動 所以要設法想出,怎麼能夠減少字串移動 非空格字元需...

替換空格(字串)

思路一 利用string類的replaceall方法 public class solution 思路二 將字串轉換為字元陣列 建立乙個新的stringbuffer的物件,遍歷字元陣列,將不為空格的字元直接存入 當遇到空格時,存入 20 public class solution return st...

字串 替換空格

方法 從後往前替換,先求出字串總長度 空格數 新字串長度,然後兩個指標分別指向原始字串末尾和新字串末尾,依次替換,遇到空格時則替換為 0 2 include includevoid replaceblank char string,int length int newlength originall...