解題思路:
統計字元陣列中的空白字元數;
計算出轉換後的字串長度;
若空白字元數為0,則直接返回-1;
若空白字元數不為0,則從字串最後一位開始檢查;
若檢查為空白字元,則進行替換並前移;
若檢查為非空白字元,則直接進行賦值並前移一位。
public
class
main02
// 統計字元陣列中的空白字元數
int blankcount =0;
for(
int i =
0; i < strlength; i++)}
// 計算轉換後的字元長度是多少
int targetlength = blankcount *
2+ strlength;
int tmp = targetlength;
if(targetlength > string.length)
// 如果沒有空白字元就不用處理
if(blankcount ==0)
strlength--
;// 從後向前,第乙個開始處理的字元
targetlength--
;// 處理後的字元放置的位置
// 字元中有空白字元,一直處理到所有的空白字元處理完
while
(strlength >=
0&& strlength < targetlength)
else
strlength--;}
return tmp;
}public
static
void
main
(string[
] args)
}
執行結果:
每日一題11 替換字串中的空格
用指定的字元或字串替換某個字串中出現的所有空格,當用字元替換字元是,自然是很簡單的,但是當使用字串替換字元時,如果還是從前往後遍歷,遇到指定字元就將其後所有字元往後移出足夠空間的話,當字串中的空格很多時,反覆的移動字元會帶來效能上的損失。但是如果是從後往前遍歷呢?可以先遍歷一次原字串,得到字串中空格...
(力扣每日一題)恢復空格
哦,不!你不小心把乙個長篇文章中的空格 標點都刪掉了,並且大寫也弄成了小寫。像句子 i reset the computer.it still didn t boot 已經變成了 iresetthecomputeritstilldidntboot 在處理標點符號和大小寫之前,你得先把它斷成詞語。當然...
每日刷題 牛客 替換空格
什麼這題也要思路,這比1 1 2難不了多少吧。可能有人問那為什麼還有做?ps 就當複習一下正則也未嘗不可吧。function replacespace str string方法 replace replace 方法返回乙個由替換值 replacement 替換一些或所有匹配的模式 pattern 後...