《劍指offer》第五題(替換空格)

2022-09-07 23:12:30 字數 1298 閱讀 9893

//

替換空格

////

#include

using

namespace

std;

bool replace_space(char* str,const

intlength)

int new_length = true_length + 2 * count;//

演算法核心思想,從尾到頭複製

if (new_length > length)//

要判斷原陣列長度夠長不

return

false;//

難受,寫的時候落下個分號

for (int i = count; i > 0;)//

當所有空格被替代完後結束

else

str[new_length] =str[true_length];

new_length -= 1

; true_length -= 1

; }

return

true;}

//********************測試**********************

void test(const

char* testname, char str, int length, const

char

expected)

//空格在句子中間

void

test1()

//空格在句子開頭

void

test2()

//空格在句子末尾

void

test3()

//連續有兩個空格

void

test4()

//傳入nullptr

void

test5()

//傳入內容為空的字串

void

test6()

//傳入內容為乙個空格的字串

void

test7()

//傳入的字串沒有空格

void

test8()

//傳入的字串全是空格

劍指offer第五題 替換空格

思路應該使用指標從後向前替換字串。不過python用不到。class solution s 源字串 def replacespace self,s write code here new s for j in s if j new s new s 20 else new s new s j retu...

劍指offer 題5 替換空格

題目 首先拿到題目,第一感覺就是乙個 空格 變成了 20 那字串長度肯定變長啊 所以我第一反應是建立新的字串b,然後從a乙個個讀取字元,遇到 空格 就用 20 來替代,只要b空間足夠,遍歷一遍就成了。但是,面試再簡單也不是考這種題目。於是這時候面試官可能會講了 要求在原來的字串上進行操作 這時候問題...

劍指offer 替換空格

思路 首先遍歷字串,找出空格的數量countspace,計算變換後的總長為newlength str.length 2 countspace。定義心得字元陣列,長度為newlength 從字串的後面開始複製和替換,如果不是空格,就複製,如果是空格,就變為 20.難點 牛客網上傳入引數是stringb...