题解 | #替换空格#
替换空格
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)
学习自 : 代码随想录-替换空格
内有详解
