当前位置: 代码迷 >> 综合 >> 将输入字符串中的空格替换为指定字符串
  详细解决方案

将输入字符串中的空格替换为指定字符串

热度:53   发布时间:2024-01-20 02:08:36.0

假设输入的字符串还有足够的空间,将输入串内的空格替换为%20

例如:

输入: “Mr John Smith    ”, 13

输出: “Mr%20John%20Smith”

 

采用队列实现该算法,空间复杂度最大O(n), 最好O(1)

时间复杂度O(n)

代码如下:

#include <iostream>
#include <string>
#include <vector>
#include <queue>
#include <algorithm>using namespace std;void URLify(char * s, int len) {if(len < 1)return;std::queue<char> Queue;bool hasBlank = false;for (int i = 0; i < len || !Queue.empty(); ++i) {// scan char from the string.if(i < len) {if(s[i] == ' ') {hasBlank = true;Queue.push('%');Queue.push('2');Queue.push('0');}else if (hasBlank)Queue.push(s[i]);}if(!Queue.empty()) {s[i] = Queue.front();Queue.pop();}}
}int main()
{char s[255] = "Smith has properties";URLify(s, strlen(s));cout << s << endl;return 0;
}

  相关解决方案