可以使用這樣的方法:
先遍歷一遍字串,求出字串中空格的個數,由此,可以計算出替換之後的字串的總長度,然後標記出字串的末尾p1和替換之後的末尾p2。
再逐步往前移動p1,p2,同時將p1資料複製到p2的位置中,如果p1指向了乙個空格,則將p1往前移動一格,p2的位置依次插入』0』 『2』 『%』並往前移動。
當空格替換完,p1與p2會到達同一位置。此演算法時間複雜度o(n)。
void replaceblack(char *string,int len)
int count = 0;
int strlength = 0;
for(int i=0;string[i] != '\0';++i)
}int newlength = strlength + count * 2;
if(len < newlength)
int indexoriginal = strlength + 1;
int indexnewlen = newlength + 1;
//不要在語句內比較時執行 indexoriginal-- 操作
while(indexoriginal >= 0 && indexoriginal < indexnewlen)
else
indexoriginal --;
}}
替換空格(四)
題目 請實現乙個函式,把字串中的每個空格替換成 20 你可以假定輸入字串的長度最大是1000。注意輸出字串的長度可能大於1000。class solution 新字串長度 int newlength spacenum 2 length 字串擴容 str.setlength newlength 原來字...
演算法題 替換空格
題目描述 請實現乙個函式,把字串 s 中的每個空格替換成 20 示例 1 限制 0 s 的長度 10000解答 因為是從乙個字元 空格 變成三個字元 20 所以申請乙個字元陣列,長度為字串長度的3倍。迴圈判斷字串中字元是否為空格,如果是將字元陣列中的size size 1 size 2三個位上分別賦...
每日一題 替換空格
解題思路 統計字元陣列中的空白字元數 計算出轉換後的字串長度 若空白字元數為0,則直接返回 1 若空白字元數不為0,則從字串最後一位開始檢查 若檢查為空白字元,則進行替換並前移 若檢查為非空白字元,則直接進行賦值並前移一位。public class main02 統計字元陣列中的空白字元數 int ...