题解
替换空格
1 条题解
-
0
解题思路
小童要把一句话里所有的空格都替换成英文逗号。
可以想象成:一段文字里有些位置是"空格",我们把每个空格都插上一面小旗子(逗号),其他字一个都不能动。
做法:
- 用
getline(cin, s)读整行,因为要处理空格; - 从头到尾看每一个字符;
- 如果是空格,就输出一个逗号
,; - 如果是其他字符,就原样输出。
比如
Hello world中间有一个空格,替换后就变成Hello,world。参考代码
// 替换空格:把一句话中所有的空格替换成英文逗号 #include <iostream> using namespace std; int main(){ string s; getline(cin,s); // 读整行(含空格) int n=s.size(); // n记录字符串长度 for(int i=0;i<n;i++){ if(s[i]==' ') cout<<','; // 空格替换成逗号 else cout<<s[i]; // 其他字符原样输出 } cout<<endl; return 0; }复杂度分析
- 时间复杂度:把字符串从头到尾扫一遍,长度是 n,所以是 O(n)。
- 空间复杂度:只用了一个字符串和循环变量,额外空间是 O(1)。
- 用
- 1