題目描述
思路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...