[劍指offer][02]替換空格

題目描述:

· 請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),將一個(gè)字符串中的空格替換成“%20”。例如,當(dāng)字符串為We Are Happy.則經(jīng)過替換之后的字符串為We%20Are%20Happy。

解題思路:
  1. 遍歷字符串統(tǒng)計(jì)出字符串中空格的總數(shù),并計(jì)算替換后字符串的總長度。
  2. 從后往前復(fù)制(非空格)替換(遇到空格)。準(zhǔn)備p1、p2兩個(gè)指針。p1指向原始字符串的末尾,而p2指向替換之后的字符串的末尾。接下來向前移動(dòng)指針p1,逐個(gè)把它指向的字符復(fù)制到p2指向的位置,直到空格全部處理完成。
[劍指offer][02]替換空格
參考代碼
class Solution {
public:
    void replaceSpace(char *str,int length) {
        //邊界檢查
        if(!length){
            return;
        }
        //計(jì)數(shù)
        int count=0;
        int len=0;
        for(int i=0; str[i]!='\0'; i++){
            if(str[i]==' ')
                count++;
            len++;                
        }
        //沒有空格直接返回
        if(!count){
            return;
        }
        //長度越界檢查
        int newLen=len+2*count;
        if(newLen+1>length)
            return;
        
        char *p1,*p2;
        p1=str+len-1;
        p2=str+newLen;
        *p2 = '\0';
        p2--;
        while(count){
            if(*p1 !=' '){
                *p2-- = *p1;          
            }               
            else{
                *p2-- ='0';
                *p2-- ='2';
                *p2-- ='%';
                count--;
            }
            p1--;
        }
    }
};
引用鏈接

劍指offer面試題:替換空格(將字符串每個(gè)空格替換為%20)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 2. 實(shí)現(xiàn) Singleton 3. 數(shù)組中重復(fù)的數(shù)字 4. 二維數(shù)組中的查找 5. 替換空格 6. 從尾到...
    Observer_____閱讀 3,162評(píng)論 0 1
  • 題目描述 請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),將一個(gè)字符串中的空格替換成“%20”。例如,當(dāng)字符串為We Are Happy.則經(jīng)過替...
    云胡同學(xué)閱讀 445評(píng)論 0 0
  • 下午的時(shí)候吃的太多,肚子猶如半個(gè)地球,直接在圖書館里坐不下去,索性出校門去琴房溜達(dá)了一圈,也順便把日思夜想的古箏報(bào)...
    嚕嚕是只豬閱讀 492評(píng)論 0 1
  • 今天老爸帶著我和發(fā)發(fā)出來放風(fēng)箏,腦袋中閃過一個(gè)念頭:放不起來,你什么時(shí)候放起來過風(fēng)箏。感覺這個(gè)念頭跟了自己很久了,...
    艷敏姐閱讀 560評(píng)論 1 7
  • 第四天早上,剛起來我想了一個(gè)問題,就是我們?cè)谶M(jìn)行各方面的價(jià)值交換的時(shí)候,應(yīng)該以一個(gè)怎樣的原則才能更好的解決問題呢,...
    張俊豪閱讀 197評(píng)論 0 2

友情鏈接更多精彩內(nèi)容