九度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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 京东购物卡丢了怎么办 京东快递丢了怎么办 京东e卡支付多了怎么办 京东帐号忘了怎么办 京东白条风控怎么办 我有个破袄…没有衣服怎么办办 轩辕传奇手游灵宠融合错了怎么办 各尧学生不能用怎么办? 山东一卡通商务卡丢了怎么办 和信通过期了怎么办 和信通过期怎么办延期 和信通过期余额怎么办 超市储蓄卡丢了怎么办 提现提到注销卡怎么办 美通卡过期2年了怎么办 物美美通卡丢失怎么办 网上购物电话留错了怎么办 微信斗牛一直输怎么办 微信斗牛输了钱怎么办 微信举报诈骗不成功该怎么办 沙河拿服装太贵怎么办 包上的暗扣掉了怎么办 银手镯暗扣松老是掉怎么办 包包纽扣锁坏了怎么办 包的纽扣坏了怎么办 包上的纽扣坏了怎么办 洗衣服不小心用了色渍净怎么办 洗衣服不小心沾了卫生纸怎么办 麻料裤子扎皮肤怎么办 衣服没洗干净有点发光怎么办 桑蚕丝衣服脏了发光洗不掉怎么办 厨师衣服的油味怎么办 看上夜场的小姐了怎么办 楼卖完了水吧员怎么办 窗帘短了20公分怎么办 白色鞋子沾油了怎么办 面试时没有正装怎么办 宝宝喝了沐浴露怎么办 开实体童装店没人买怎么办 宝宝一岁半了还不会说话怎么办 十个月宝宝不吃辅食怎么办