题解 | #替换空格#
替换空格
http://www.nowcoder.com/practice/0e26e5551f2b489b9f58bc83aa4b6c68
C++递归 字符拼接将字符串中的空格替换成 %20 ,考虑到移动元素消耗的时间会比较多,于是想到了递归拼接,核心思路是遍历string,碰到空格就进入下一层递归。string内每个元素被访问一次,所以时间复杂度为O(n),空间复杂度上因为运用了递归,所以主要是一个递归栈的空间占用,取决于空格的数量,最坏情况下可以达到O(n)级。本解法并不高效,但是很懒。
string replaceSpace(string s) { // write code here for(int i=0;i<s.length();i++){ if(s[i]==32) return s.substr(0,i)+"%20"+replaceSpace(s.substr(i+1)); } return s; }