企业建设网站应该一般多少钱,天网网站建设,查排名的软件有哪些,wordpress改网址导航题目
请实现一个函数#xff0c;把字符串中的每个空格替换成%20。
你可以假定输入字符串的长度最大是1000。
注意输出字符串的长度可能大于1000。样例
输入#xff1a;We are happy.输出#xff1a;We%20are%20happy.方法一#xff…题目
请实现一个函数把字符串中的每个空格替换成%20。
你可以假定输入字符串的长度最大是1000。
注意输出字符串的长度可能大于1000。样例
输入We are happy.输出We%20are%20happy.方法一
// 时间复杂度是 O(n)。class Solution {
public:string replaceSpaces(string str) {string res; //必须新定义一个res不能在原来的str上修改for (auto x: str)if(x ) res%20;else resx;return res;}
};方法二
class Solution {
public:string replaceSpaces(string str) {int len 0;for (auto c : str)if (c )len 3;elselen ; //计算长度int i str.size() - 1, j len - 1; //修改指针的位置str.resize(len); //重定义str长度while (i 0){if (str[i] ) //从后往前当str[i] ,则添加{str[j -- ] 0;str[j -- ] 2;str[j -- ] %;}else str[j -- ] str[i]; //否则简单的赋值。 str[j--] str[i] . 把str原来的值赋值给扩建的str后面的i -- ;}return str;}
};作者yxc 链接https://www.acwing.com/solution/AcWing/content/704/ 来源AcWing 著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。
心得
方法一 必须新定义一个res不能再原来的str上修改。 invalid conversion from ‘const char*’ to ‘char’ [-fpermissive] str最终是const长度是有限的不能添加%20长度为3. 见方法二
方法二 关键在于str进行了重新定义长度。