首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

9度OJ 题目1510:替换空格

2013-10-18 
九度OJ 题目1510:替换空格题目1510:替换空时间限制:1 秒内存限制:128 兆特殊判题:否提交:1697解决:436题目

九度OJ 题目1510:替换空格

题目1510:替换空格

时间限制:1 秒

内存限制:128 兆

特殊判题:否

提交:1697

解决:436

题目描述:

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

输入:

每个输入文件仅包含一组测试样例。
对于每组测试案例,输入一行代表要处理的字符串。

输出:

对应每个测试案例,出经过处理后的字符串。

样例输入:
We Are Happy
样例输出:
We%20Are%20Happy
【代码】

/**********************************   日期:2013-10-16*   作者:SJF0115*   题号: 九度OJ 题目1510:替换空格*   来源:http://ac.jobdu.com/problem.php?pid=1510*   结果:AC*   来源:剑指Offer*   总结:**********************************/#include<stdio.h>#include<string.h>char str[10000001];int main(){   int i,j,len;while(gets(str)){int count = 0;int len = strlen(str);//统计空格的个数for(i = 0;i < len;i++){if(str[i] == ' '){count++;}}//原始字符串末尾i = len;//替换之后字符串末尾j = 2*count+len;//i == j 表示空格替换完毕while(i != j && i >= 0){if(str[i] == ' '){str[j--] = '0';str[j--] = '2';str[j--] = '%';i--;}else{str[j] = str[i];j--;i--;}}//输出替换之后的字符串len = strlen(str);for(i = 0;i < len;i++){printf("%c",str[i]);}printf("\n");}    return 0;}

【解析】

9度OJ 题目1510:替换空格

9度OJ 题目1510:替换空格

9度OJ 题目1510:替换空格

9度OJ 题目1510:替换空格


【第二种方法】


9度OJ 题目1510:替换空格


9度OJ 题目1510:替换空格


9度OJ 题目1510:替换空格


1楼qq506657335昨天 22:08
楼主为什么执着于操作那个字符串呢。。。从前往后,碰到空格就输出%20其他原样输出不就好了。。
Re: SunnyYoona昨天 23:42
回复qq506657335n时间复杂度的问题。从字符串前面考虑时间复杂度是O(n^2)n从后考虑时间复杂度是O(n)
Re: qq5066573351小时前
回复SunnyYoonan我是指直接输出到屏幕,不是说操作完字符串再进行输出。。。。
Re: SunnyYoona1小时前
回复qq506657335n这题面试的意思是在字符串中替换之后输出,假如像你说的那样这道题面试就没什么意义了。

热点排行