C++去除多余的空格
源自今天的力扣练习151.翻转字符串里的单词
以“ The sky is blue “为例,使用双指针法来去移除空格,最后resize(重新设置)一下字符串的大小,就可以做到O(n)的时间复杂度
//版本一
void removeExtraSpaces(string& s) {
int slowIndex = 0, fastIndex = 0; // 定义快指针,慢指针
// 去掉字符串前面的空格
while (s.size() > 0 && fastIndex < s.size() && s[fastIndex] == ' ') {
fastIndex++;
}
for (; fastIndex < s.size(); fastIndex++) {
// 去掉字符串中间部分的冗余空格
if (

文章介绍了两种C++方法来去除字符串中的多余空格。第一种采用双指针法,通过快慢指针去除前后及中间的冗余空格,保持O(n)的时间复杂度。第二种方法虽然逻辑简单,但时间复杂度为O(n^2)。版本二对第一种方法进行了优化,同时添加了在单词之间保留一个空格的功能。
最低0.47元/天 解锁文章
150

被折叠的 条评论
为什么被折叠?



