牛客劍指OFFER JZ2 替換空格

2021-10-24 07:18:27 字數 1314 閱讀 6402

題目描述

思路1:從頭開始

1、新建乙個陣列p,從頭開始遍歷原陣列str

2、若str中某位置資料不為空格,則p中對應位置改為該資料

3、若str中某位置資料為空格,則p中對應位置改為%20,可用strcat代勞

4、最後把p中內容拷到str中,用strcpy

優點:簡單好想。

void

replacespace

(char

*str,

int length)

else

} p[j]

='\0'

;strcpy

(str,p)

;}

思路2:從尾開始

1、先遍歷一遍陣列str,統計陣列長度i與空格數量n_space,則新陣列長度cnt = i + 2*n_space

2、利用i從str陣列未尾開始遍歷,直接把改動加在str

3、若str中某位置資料不為空格,則str中對應位置改為該資料

4、若str中某位置資料為空格,則str中對應位置改為%20

優點:占用空間小

void

replacespace

(char

*str,

int length)

i++;}

int cnt = i+

2*n_space;

// 求新陣列長度 cnt

str[cnt]

='\0'

;// str末尾補個'\0'

while

(i && cnt > i)

// cnt = i 時說明 接下來已經沒有空格了,保持原樣即可,提高速度

else

}}

牛客劍指OFFER JZ15 反轉鍊錶

題目描述 輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。思路 1 如果鍊錶為空,返回 2 定義兩個節點指標pl phead pr phead next 3 令 pl next null 鍊錶反轉後的結尾 4 每一次迴圈,令 phead pr phead指向準備改變節點內指標指向的節點pr pr pr ...

牛客 2 替換空格

題目描述 注意 題目中的 替換成長度為3的字串,所以陣列長度增加了。python解決方法 先把字串轉化成列表,進行替換,然後把列表轉化回字串 lis list s leng len s for i in range 0,leng if i lis i 20 return join lis class...

牛客網 劍指offer 第二題替換空格

第 步 檢測出空格的個數 可以考慮下是從前往後檢測,還是從後往前檢測哪個好 第 步 將空格替換為 20,注意原先是有個空格,新字串後只是增加了2個空格 include using namespace std void replacespace char str,int length newlen o...