剑指offer题解C++【2】
来源:互联网 发布:mac电脑excel内存不足 编辑:程序博客网 时间:2024/05/24 07:32
题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题思路
首先计算字符串中的空格数量,若空格数量为count,则替换后的字符串长度增加2*count;
然后从最后一位开始替换字符,若为空格,则依次从后往前替换为’0’ ‘2’ ‘%’,否则不变;
由于已经知道了空格的数量,因此在替换完最后一个空格(即从前往后数第一个)之后,则可以停止替换,剩下的字符保持不变即可。
代码
class Solution {public: void replaceSpace(char *str, int length) { //find space num int count = 0; for (int i = 0; i < length; i++) { if (str[i] == ' ') count++; } int new_length = length + 2 * count; int j = new_length - 1; for (int i = length - 1; i >= 0; i--) { if (count == 0) break; if (str[i] == ' ') { str[j--] = '0'; str[j--] = '2'; str[j--] = '%'; count--; } else { str[j--] = str[i]; } } }};
阅读全文
0 0
- 剑指offer题解C++【2】
- 剑指offer题解C++【1】
- 剑指offer题解C++【3】
- 剑指offer题解C++【8】跳台阶
- 剑指offer题解C++【10】矩形覆盖
- 剑指offer题解C++【4】重建二叉树
- 剑指offer题解C++【5】用两个栈实现队列
- 剑指offer题解C++【6】旋转数组的最小数字
- 剑指offer题解C++【7】斐波那契数列
- 剑指offer题解C++【9】变态跳台阶
- 剑指offer题解C++【11】二进制中1的个数
- 剑指offer题解C++【12】数值的整数次幂
- 剑指offer题解C++【15】反转链表
- 剑指offer题解C++【17】树的子结构
- 剑指offer题解C++【18】二叉树的镜像
- 剑指offer题解C++【19】顺时针打印矩阵
- 剑指offer题解C++【20】包含min的栈
- 剑指offer题解C++【25】复杂链表的复制
- Word Break
- 各类学习网址
- [LeetCode] 93. Restore IP Addresses
- 计蒜客————单独的数字
- ArcGIS For Android 利用线对面进行分割
- 剑指offer题解C++【2】
- 左偏树
- 伸展树
- jOrgChart树形图插件
- 【HTML 基础】05 表格
- hdu 2476 刷墙
- XPath
- CentOS7安装MySql遇到的问题
- 管中窥豹:一线工程师看MQTT