题解 | #替换空格#
替换空格
https://www.nowcoder.com/practice/0e26e5551f2b489b9f58bc83aa4b6c68
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return string字符串 */ //解题思路: 扩充空格 从后向前填写 // 代码随想录 string replaceSpace(string s) { //扩充: 计算需要扩充多少 int count=0; //统计空格个数 int sOldSize=s.size(); for(int i=0;i<s.size();i++) { if(s[i]==' ') {count++;} } // 扩充字符串s的大小,也就是每个空格替换成"%20"之后的大小 s.resize(s.size()+count*2); int sNewSize=s.size(); for(int i=sNewSize-1,j=sOldSize-1;j<i;i--,j--) { if(s[j]!=' ') {s[i]=s[j];} else { {s[i]='0'; s[i-1]='2'; s[i-2]='%'; i-=2;} } } return s; } };
- 时间复杂度:O(n)
- 空间复杂度:O(1)
学习自 : 代码随想录-替换空格
内有详解