5-32 说反话-加强版
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:
测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。
输出格式:
每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。
输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello
解题思路:
先处理字符串,删除多余的空格,形成新字符串。然后逆序输出刚才处理好的字符串,即碰到空格就输出单词。
解题代码:
#include<stdio.h>
#define MAX 500000int main ()
{char s;char t[MAX];int i = 0, count = 0, flag = 0;while ((s=getchar()) != '\n') {if (s != ' ') {flag = 1; //标记遇到单词 t[i++] = s;count = 0;} else if (count > 0) {continue;} else if (flag) {t[i++] = s; //只有之前遇到单词的情况下碰到空格才把这个空格写入目标字符串 count ++;}} //删除多余的空格,将目标字符串放入 t 中 count = 0;int j;for (i-=1; i>=0; i--) {if (t[i] != ' ') {count ++; // 这里的 count 统计的是单词的位数 } else if (t[i]==' ' && count > 0) {for (j=i+1; j<=i+count; j++) {printf("%c", t[j]);} //遇到空格就输出单词 printf(" ");count = 0;}} // 还剩最后一个单词没输出for (j=i+1; j<=i+count; j++) {printf("%c", t[j]);} return 0;
}
转载于:https://www.cnblogs.com/andywenzhi/p/5738608.html
5-32 说反话-加强版相关推荐
- 7-25 说反话-加强版 (20分)
7-25 说反话-加强版 (20分) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串.字符串由若干单 ...
- 7-15 说反话-加强版 (20 分)#
7-15 说反话-加强版 (20 分)# 7-15 说反话-加强版 (20 分) 强行解释# 先输出最后的单词,后输入先输的单词?(这不就是队列吗?先入队,后出队.不,咱现在也没学过,咱也不敢问) 那 ...
- 7-15 说反话-加强版 (20 分)
7-15 说反话-加强版 (20 分) PAT 程序设计天梯赛 韩旭051 7-15 说反话-加强版 (20 分) 强行解释 先输出最后的单词,后输入先输的单词?(这不就是队列吗?先入队,后出队.不, ...
- PTA-7-32 说反话-加强版(C语言)
7-32 说反话-加强版 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串.字符串由若干单词和若干空格 ...
- c语言 PTA 基础编程题目集 编程题 7-32 说反话 加强版 的分析
这里想跟大家谈一谈pta上的一个编程题,说反话的加强版,这道题题目很好理解,可是编程的思路却十分难找,代码更是难以看懂.这里我想跟大家分享一种思路,并做出详细的分析. #include<stdi ...
- PAT基础编程题目集 7-32 说反话-加强版
#include <stdio.h> #include <string.h> int main() {char s[600000];scanf("%[^\n]&quo ...
- 7-13 说反话-加强版 (12分)(附详细教程)
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母 ...
- PTA基础编程题目集-7-32 说反话-加强版
我不知道我这个到底错在哪里,就sample输出错误,其他的都是对的,但是我怎么都没有看出这个到底错在哪里! #include<iostream> #include<algorithm ...
- 10行代码AC——7-2 说反话-加强版 (20 分)——解题报告
励志用尽量少的代码做高效的表达. 题目描述 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串.字符串由 ...
最新文章
- 云效平台:企业级互联网架构下的持续集成与持续交付实践
- PHP用foreach来表达array_walk/array_filter/array_map/array_reduce
- 基于脑电图的情绪识别BCI应用于DOC患者
- android_通过高级应用程序开发策略在Android中进行用户参与
- 【ORACLE】 安装需要注意的问题(一)
- Dokcer安装Redis
- oracle 慕课课程_“慕课”在Oracle数据库课程中的应用探讨
- 促销 java_原始促销 [Java]
- RabbitMQ 简介和使用
- django-路由进阶-01
- 数字电路中的建立时间与保持时间
- 如何进行多云环境中的数据管理?
- 拓端tecdat|SAS用梯度提升回归树(GBDT)迁移学习预测抵押贷款拖欠风险和垃圾电子邮件数据
- CorelDRAWX4的VBA插件开发(五) 一键转曲
- html返回按钮 超链接,ppt超链接返回键
- ACM—数论—费马大定理 (数学史上著名的定理)
- 腾讯加盟:Kafka-on-Pulsar 项目迎来 2 位腾讯 Maintainer!
- 实现多方数据安全共享,解决普惠金融信息不对称难题
- 姜小白的Python日记Day12 迭代器与内置函数
- 最大似然估计(Maximum Likehood Estimation,MLE)和最大后验估计(Maximum A Posteriori estimation, MAP)