时间限制:1 秒
内存限制:128 兆
特殊判题:否
提交:2404
解决:388
- 题目描写:
-
小明手中有很多字符串卡片,每一个字符串中都包括有多个连续的空格,而且这些卡片在印刷的进程中将字符串的每一个子串都打印反了,现在麻烦你帮小明将这些字符串中的子串修正过来,同时为了使卡片美观,紧缩其中的连续空格为1个。
- 输入:
-
输入包括多个测试用例,每一个测试用例的第1行是1个正整数 n,1=<n<=100000,代表卡片上字符串的长度。第2行输入长度为n的字符串(字符串仅包括小写字母和空格)。当n为0时,代表输入结束。
- 输出:
-
对应每一个测试用例,请依照要求输出修正过的字符串。
- 样例输入:
-
3
abc
13
abc efg hij
- 样例输出:
-
cba
cba gfe jih
- 来源:
- 2012年Google校园招聘笔试题目
#include <stdio.h>
#include<string.h>
#define MAX 100000+10
char s[MAX];
char tmp[MAX];
int main() {
int n;
while(~scanf("%d",&n))
{
if(n==0)return 0;
while(getchar()!='
')
;
gets(s);
int len=strlen(s);
int i=0;
while(i<len)
{
int j=0;
while(i<len&&s[i]==' ')
{
i++;
j++;
}
if(j>0)
printf(" ");
j=0;
while(i<len&&s[i]!=' ')
{
tmp[j++]=s[i];
i++;
}
if(j>0)
{
for(int p=0,q=j⑴;p<q;++p,–q)
{
char t=tmp[p];
tmp[p]=tmp[q];
tmp[q]=t;
}
tmp[j]='';
printf("%s",tmp);
}
}
printf("
");
}
return 0;
}
#include<string.h>
#define MAX 100000+10
char s[MAX];
char tmp[MAX];
int main() {
int n;
while(~scanf("%d",&n))
{
if(n==0)return 0;
while(getchar()!='
')
;
gets(s);
int len=strlen(s);
int i=0;
while(i<len)
{
int j=0;
while(i<len&&s[i]==' ')
{
i++;
j++;
}
if(j>0)
printf(" ");
j=0;
while(i<len&&s[i]!=' ')
{
tmp[j++]=s[i];
i++;
}
if(j>0)
{
for(int p=0,q=j⑴;p<q;++p,–q)
{
char t=tmp[p];
tmp[p]=tmp[q];
tmp[q]=t;
}
tmp[j]='';
printf("%s",tmp);
}
}
printf("
");
}
return 0;
}
/**************************************************************
Problem: 1525
User: kirchhoff
Language: C
Result: Accepted
Time:40 ms
Memory:1112 kb
****************************************************************/
波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
波比源码 » 九度OJ 1525 子串逆序打印
波比源码 » 九度OJ 1525 子串逆序打印