九度1510(字符串)
来源:互联网 发布:图案设计软件 编辑:程序博客网 时间:2024/06/08 07:41
题目1510:替换空格
时间限制:1 秒
内存限制:128 兆
特殊判题:否
提交:2553
解决:677
题目描述:
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
输入:
每个输入文件仅包含一组测试样例。
对于每组测试案例,输入一行代表要处理的字符串。
输出:
对应每个测试案例,出经过处理后的字符串。
样例输入:
We Are Happy
样例输出:
We%20Are%20Happy
题解
本体题型很是常规,通常可以采用从左到右依次移动处理每个元素,此过程中涉及到移动后续元素,时间复杂度为O(n^2);为了减小时间复杂度,可以额外开辟另一数组,牺牲空间换取时间,此算法时间复杂度为O(n);仔细一想,可以尝试从右到左在原数组基础上处理,时间复杂度可以有效降到O(n)且不额外开辟存储空间。
#include<iostream>#include<cstring>#include<cstdio>#include<string>using namespace std;int main(){string str;char ch[10000000];while(getline(cin,str))//while(gets(ch)){int i,count=0,size=str.size();for(i=0;i<size;i++){if(str[i]==' ')count++;}i=size-1;ch[i+1+count*2]=0;while(i>=0){if(str[i]==' '){ch[i+count*2]='0';ch[i+count*2-1]='2';ch[i+count*2-2]='%';count--;}else ch[i+count*2]=str[i];i--;}printf("%s\n",ch);}return 0;}
0 0
- 九度1510(字符串)
- 九度1165 字符串匹配
- 九度-1165 字符串匹配
- 九度1283(字符串+hash)
- 九度~1192~回文字符串
- 九度-1192:回文字符串
- 九度1192回文字符串
- 九度1105 字符串的反码
- 九度OJ 题目1066:字符串排序
- 九度OJ 题目1206:字符串连接
- 九度OJ 题目1192:回文字符串
- 九度OJ 题目1135:字符串排序
- 九度OJ 题目1192:回文字符串
- 九度OJ 1054 字符串内排序
- 题目1369:字符串的排列-九度
- 九度-1168 字符串的查找删除
- 九度题目:字符串排序(1135)
- 【九度】题目1054:字符串内排序
- 压哨大交易!格兰杰换特纳 东部谁还能挡步行者?
- WINCE 禁止MFC程序窗口上的OK按钮
- vim学习心得
- 九度OJ 1372 最大子向量和(连续子数组的最大和)
- java学习记录(二)字符串
- 九度1510(字符串)
- linux SIGFPE信号处理的疑惑
- 想和你去吹吹风(张学友演唱歌曲)
- hdu 3199 动态规划
- 筛法求素数
- java学习记录(三)集合
- 求连续子数组的最大和
- PHP函数 mysql_connect()连接MySQL数据库错误的解决办法
- isMemberOfClass 和 isKindOfClass