-
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
时间限制:1 秒
内存限制:128 兆
题目描述:
-
输入:
-
每个输入文件仅包含一组测试样例。
对于每组测试案例,输入一行代表要处理的字符串。
-
输出:
-
对应每个测试案例,出经过处理后的字符串。
-
样例输入:
-
We Are Happy
-
样例输出:
-
We%20Are%20Happy
-
-
分析题目:
-
数据分析:没有给出字符串长度范围, 使用string str, 使用getline(cin, str)函数输入字符串
-
-
方法:此题较简单, 先计算空格的数量,根据替换后字符串的大小建立存放结果的字符串, 原字符串从后往前将空格进行替换后存入结果字符串, 时间复杂度为O(n), 代码已AC。
-
-
#include <iostream> #include <cstdio> #include <string> using namespace std; string str; int main(void) { getline(cin, str); int n = str.size(); int count = 0; for (int i = 0; i < n; ++i) { if (str[i] == ' ') ++count; } str.resize(n + count * 2); int index= str.size() - 1; for (int i = n - 1; i >= 0; --i) { if (str[i] == ' ') { str[index--] = '0'; str[index--] = '2'; str[index--] = '%'; } else str[index--] = str[i]; } cout << str << endl; return 0; }