面試題5 替換空格

2021-10-02 16:11:29 字數 1488 閱讀 8054

方法

一、二**於牛客網;方法

三、四**於leecode

.

**方法一:**字串陣列

class

solution

for(

int j = length -

1; j >=0;

--j)}}

};

**方法二:**字串陣列轉換成string,使用string成員函式

先轉為string,然後處理完成後再轉為const char *(指向字串陣列的指標)。但不是以返回值的形式,還要利用好原來的空間,用strcpy實現之。處理過程迴圈查詢,每次找到就替換,且把每次的找到的結果當成下一次的引數,避免重複從頭查詢。

class

solution

auto ret=s.

c_str()

;//c_str()函式返回乙個指向正規c字串的指標, 內容與本string串相同.,這是為了與c語言相容,在c語言中沒有string型別,故必須通過string類物件的成員函式c_str()把string 物件轉換成c中的字串樣式。

//auto 讓編譯器根據初始值s.c_str的型別推斷ret的型別,此處為 const char *指標

strcpy

(str,ret)

;//strcpy(str,s.c_str);替換前面兩句}}

;

class

solution

//for(auto s1 : s)

//int newlen = s.size() + 2 * count;

//int originend = s.size() - 1,newend = newlen - 1;

//while(originend >= 0 && newend > originend)

// else

// --originend;

//}for

(int i = s.

size()

-1; i >=0;

--i)

}return s;}}

;

class

solution

//for(char s1 : s)

// if(s1 == ' ')

// s += "00";

int len2 = s.

size()

-1;//if (len2 <= len1)

// return s;

for(

int i = len1; i >=0;

--i)

}return s;}}

;

class

solution

return res;}}

;

面試題5 替換空格

面試題5 替換空格 解題思路 遍歷字串,求出公有多少個字元,和有多少個空格 因為要將空格替換成 20 意味著乙個空格要增加兩個長度。所以新的字元長度為 原有長度 空格長度 2 這是乙個指標p1,放在久長度尾部,p2,放在新長度尾部。將p1指向的字元移動到p2指向的位置,若字元為空格,則替換成 20 ...

面試題5 替換空格

題目 請實現乙個函式,把字串 s 中的每個空格替換成 20 示例 思路1 把字串儲存到陣列中處理,稍微麻煩一點。1 void replacespace char str,int length newlength oldlength 2 count if newlength length 長度超過總長...

面試題5 替換空格

1.考慮特殊輸入,空串 單空格 多空格,測試用例 2.考慮輸入字串無空格,測試用例 string 3.考慮正例輸入,字串前 中 後存在空格 單多空格 測試用例 hello world 1 str str.replace 20 對整個字串進行從左至右遍歷,遇到空格進行替換 若為字元陣列,需要向後移位,...