如果面試的時候,你只寫出了這種演算法,那你大概率就涼了
void
replaceblank
(string s)
else
} s = ans;
cout << ans;
}
我們先遍歷一遍字元,統計裡邊的空格的數量,由此可以計算出替換之後字元的長度
我們準備兩個指標,然後乙個指向替換之後的末尾位置,乙個指向為替換末尾位置
然後兩個指標同時向前移動
如果前指標指向空格,那麼後指標移動三個單位分別賦值為%20
如果前指標不是空格,那麼後指標賦值前指標的值
string replacespace
(string s)
}// 擴充字串s的大小,也就是每個空格替換成"%20"之後的大小
s.resize
(s.size()
+ count *2)
;int snewsize = s.
size()
;// 從後先前將空格替換為"%20"
for(
int i = snewsize -
1, j = soldsize -
1; j < i; i--
, j--
)else
}return s;
}
面試題 替換空格
基本思路 先遍歷一遍字串統計字串中空格的個數並計算出替換之後的字串的總長度,每替換乙個空格,長度增加2,因此替換後字串的長度對於原來的長度加上空格個數的2倍。如果從頭到尾掃瞄字串,遇到空格就做替換,必須每次都把空格後面所有的字元都向後移動兩個位元組,這樣處理的時間複雜度為o n 效率比較低。我們還有...
面試題 替換空格
一 2 在網路程式設計中,如果url引數中含有特殊字元,如空格 等,則可能導致伺服器端無法獲取正確的引數值。我們可以將這些特殊符號替換成伺服器可以識別的字元。可以在 後面跟上ascii碼的兩位十六進製制表示。空格的ascii碼為32.3 思路 1 把第乙個指標指向字串的末尾,把第二個指標指向替換後字...
面試題4 替換空格
面試題4 實現乙個函式,把字串中的空格替換成 20 從前向後移動時,假如字串的長度為n。對於每個空格字元,需要移動後面o n 個字元,對含有o n 個空格字元的字串而言總的時間效率是o n n 從後向前移動時,所有的字元只需要複製一次,時間效率為o n void replaceblank char ...