替换空格
来源:互联网 发布:android 调用js 编辑:程序博客网 时间:2024/05/21 11:32
题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题分析
替换字符串中的空格,一、我们可以重头开始往后遍历,遇到空格就用%20替换,考虑到这样的话需要移动的元素很多,每替换一个空格,他后面的所有元素都要移动,时间复杂度太高。二、从后往前替换空格,那么只需要移动空格后面的字符串就行了,这样大大减少时间复杂度。
//length为牛客系统规定字符串输出的最大长度,固定为一个常数class Solution {public: void replaceSpace(char *str,int length) { //spaceLength记录空格的个数 int spaceLength=0; //OldLength记录字符串长度 int OldLength=0; //开始遍历计数 int k=0; while(str[k]!='\0'){ OldLength++; if(str[k]==' '){ spaceLength++; } k++; } //替换后的字符串长度 int newLength=OldLength+spaceLength*2; //与牛客系统给的长度值比较 if(newLength>length){return;} //从后面开始替换 while(OldLength>=0&&newLength>OldLength){ if(str[OldLength]==' '){ str[newLength--]='0'; str[newLength--]='2'; str[newLength--]='%'; } else{ str[newLength--]=str[OldLength]; } OldLength--; } }};
0 0
- 空格替换
- 替换空格
- 空格替换
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 空格替换
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 和我一起写Makefile(转载)
- 学习封装 MVC (3)
- 多级指针运算
- 进程的有哪几种状态,状态转换图,及导致转换的事件
- HDU 4607 Park Visit 树的直径
- 替换空格
- 线性表链式存储API
- C++ 求排列函数 next_permutation, prev_permutation
- Intellij快捷键
- 指定Action,Category调用系统Activity
- CUDA Toolkit 各版本文档
- 动态显示当前系统时间和移除定时器
- C#静态字段和静态方法
- 指针练习 1002 将数组a中的n个整数按相反顺序存放