每日一題 替換空格

2021-09-26 07:49:51 字數 966 閱讀 8303

解題思路:

統計字元陣列中的空白字元數;

計算出轉換後的字串長度;

若空白字元數為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 後...