劍指offer-字串空格替換為“ ”
一、問題描述
請實現一個函式,將一個字串中的空格替換成“%20”。例如,當字串為We Are Happy.則經過替換之後的字串為We%20Are%20Happy。
二、思路
由於規定是char*型別,所以沒法用string型別字串處理,我們從後往前依次替換,注意替換過程中需要考慮輸出長度不超過length。
三、程式碼
//length為牛客系統規定字串輸出的最大長度,固定為一個常數
class Solution {
public:
void replaceSpace(char *str,int length) {
if(str == NULL || length < 0)
return ;
int i = 0,blank_num = 0,old_num = 0;
while(str[i] != '\0'){
old_num++;
if(str[i] == ' '){
blank_num++;
}
++i;
}
int new_num = old_num + blank_num * 2;
if(new_num > length)
return;
while(old_num >= 0 && new_num > old_num){
if(str[old_num] == ' '){
str[new_num--] = '0';
str[new_num--] = '2';
str[new_num--] = '%';
}else{
str[new_num--] = str[old_num];
}
--old_num;
}
}
};
相關文章
- 【劍指offer】替換字串中的空格字串
- LeetCode 劍指 Offer 05. 替換空格LeetCode
- 替換空格 將一個字串中的空格替換成“ ”字串
- Problem 4:替換空格(字串)字串
- 【劍指offer】【2】字串的空格字串
- js替換字串裡的空格JS字串
- 替換字串中的空格《演算法很美》字串演算法
- javascript將字串中的多個空格替換為一個空格的正則例項JavaScript字串
- 劍指offer(Java版)--將字串轉換為整數Java字串
- 第五章 字串專題 ---------------- 5.4 實踐:替換字串中的空格字串
- 劍指OFFER-從頭到尾列印連結串列(Java)Java
- 劍指offer-轉陣列的最小數字-php陣列PHP
- 演算法學習記錄二(C++)--->字串空格替換演算法C++字串
- C++ 中的替換空格C++
- 劍指Offer-連續子陣列中的最大和陣列
- 劍指offer-從尾到頭列印連結串列-phpPHP
- 劍指offer-用兩個棧實現佇列-php佇列PHP
- sed 字串替換字串
- ACM 字串替換ACM字串
- 正則替換 修改字元 去除空格字元
- 劍指offer——把字串轉換成整數C++字串C++
- 劍指offer-例題 連續子陣列的最大和陣列
- 【劍指offer】左旋轉字串字串
- 【劍指offer】字串的排列字串
- vi替換字串(zz)字串
- POJ 3981 字串替換字串
- [每日一題] 第十題:替換空格每日一題
- nowcoder-劍指offer-二維陣列的查詢陣列
- 【劍指offer】字串轉整數字串
- 【劍指offer】字串的組合字串
- 力扣 - 劍指 Offer 67. 把字串轉換成整數力扣字串
- js replace替換字串,同時替換多個方法JS字串
- 劍指OFFER-數字在升序陣列中出現的次數(Java)陣列Java
- 劍指Offer-把陣列中的數排成一個最小的數陣列
- js中字串的替換JS字串
- js中字串全部替換JS字串
- Linux vi替換字串Linux字串
- 字串查詢和替換字串