面试题5:替换空格
来源:互联网 发布:模具设计与制造软件 编辑:程序博客网 时间:2024/06/06 07:48
题目:
请实现一个函数,把字符串中的每个空格替换成"%20"。
解答:
可以先统计空格数,然后扩大字符串的size,然后从后面开始往前移动或添加字符到对应位置,用两个指针实现。
时间复杂度:O(n)
空间复杂度:O(1)
#include <iostream>#include <vector>#include <string>using namespace std;void replace(string &str){int count = 0;char *ptr = &str[0];while (*ptr != '\0'){if (*ptr == ' ') count+=2;++ptr;}for (int i = 0; i < count; ++i)str += " ";--ptr;char *lastPtr = ptr+count;while (ptr >= &str[0]){if (*ptr != ' '){*lastPtr = *ptr;--ptr;--lastPtr;}else{--ptr;*(lastPtr--) = '0';*(lastPtr--) = '2';*(lastPtr--) = '%';}}}int main(){string str(" we are family hello ");replace(str);cout << str << endl;return 0;}
0 0
- 面试题5:替换空格
- 面试题:替换空格
- 剑指offer--面试题5:替换空格
- 【剑指offer】面试题 5:替换空格
- 【剑指offer】面试题5:替换空格
- 剑指offer 面试题5: 替换空格
- 面试题之替换空格
- 面试题4:替换空格
- 面试题 -- 字符串替换空格
- 面试题4 替换空格
- 面试题4:空格替换
- 面试题4-替换空格
- 面试题4 替换空格
- 面试题四:替换空格
- 面试题4:替换空格
- 面试题4 替换空格
- 面试题4:替换空格
- 面试题2:替换空格
- 霍夫曼树的构建及输出
- Java Web 项目获取运行时路径 classpath
- DWZ+ThinkPHP时遇到的问题
- CCFlow与JFlow的集成模式的组织结构说明
- Blog 之 心情随笔
- 面试题5:替换空格
- iOS常见错误6-The identity used to sign the executable is no longer valid.
- [LeetCode]:Two Sum
- POJ 3213 PM3 矩阵乘法
- Now--Feature--Thinking
- Oracle 如何在线添加ASM磁盘
- 该读书的时候读书
- USACO 1.2
- 命令行选项