说反话

news2025/1/12 18:11:01

目录

1009:说反话

输入格式:

输出格式:

输入样例:

输出样例:

代码长度限制:

时间限制

内存限制

思路:

  1.数组

    1.2代码:

  2.拷贝单词 

    2.2代码:

总代码:

 时间复杂度:

总结:

题目链接:


1009:说反话

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:

测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。

输出格式:

每个测试用例的输出占一行,输出倒序后的句子。

输入样例:

Hello World Here I Come

输出样例:

Come I Here World Hello

代码长度限制:

16 KB

时间限制

400 ms

内存限制

64 MB

思路:

  1.数组

  字符串最长为80,我们可以定义一个长度为81的cahr类型数组a.

  我们要做的是找a这个字符串里面的单词,单词最为80,最多也为80,我们就可以定义一个char类型二维数组s[81][81],这是来干什么的呢?

  前面s[0],s[1]代表的是0号单词和1号单词,s[0][1],s[1][1]代表的是0号单词的1号字母和1号单词的1号字母,也计算说,s这个字符串存的是所有的单词.

  存好之后,倒着输出就是反话了!

    1.2代码:

	for(int i=/*s的长度*/;i>=0;i--){ //循环输出
		if(i!=0) //特判
		  cout<<s[i]<<" "; //输出空格
		else
		  cout<<s[i];//后面不加空格
	}

因为题目要求是行末尾,没有空格,所有输出的时候要判断一下.

  2.拷贝单词 

关键问题就是,怎么把字符串a里面的单词拷贝到字符串s里面.

  根据题目要求,每一个空格前后就是两个单词,这样的话,我们可以进行双指针操作,两个指针sum,j.

  sum代表的是这个单词的数量,j代表是单词的长度,s[sum][j],两者初始化为0之后,我们可以进行拷贝单词了.

  首先用strlen函数求出a的长度t,然后从下标0开始,一直到t-1开始循环遍历,如果不是空格的话,我们就进行s[sum][j]=a[i]的操作,进行之后,将指针j向后挪移一位,相当于j++,这样下次赋值就不会重复了.

  那如果碰到空格怎么办呢?sum代表的是单词的个数,喷到空格代表当前的单词已经到了结尾,已经拷贝完成了,就讲单词个数sum++,下一个字符就存到另外一个单词中,不会发生冲突,之后我们还需要将当前单词的长度j设置为0,毕竟都已经下一个单词了,从新开始了!

    2.2代码:

void fun(){
	int j=0; //当前单词的长度 
	int t=strlen(a); //求字符串a的长度 
	for(int i=0;i<t;i++){ //循环遍历 
		if(a[i]!=' ') //如果不是空格 
		  s[sum][j]=a[i],j++; //进行拷贝,将单词长度j+1 
		else //如果是空格  
		  sum++,j=0; //将单词数量sum+1,并且将单词长度重新赋值为0 
	}
}

总代码:

#include<bits/stdc++.h>
using namespace std;
char a[81]; //字符串 
char s[81][81]; //单词串 
int sum=0;
void fun(){
	int j=0; //当前单词的长度 
	int t=strlen(a); //求字符串a的长度 
	for(int i=0;i<t;i++){ //循环遍历 
		if(a[i]!=' ') //如果不是空格 
		  s[sum][j]=a[i],j++; //进行拷贝,将单词长度j+1 
		else //如果是空格  
		  sum++,j=0; //将单词数量sum+1,并且将单词长度重新赋值为0 
	}
}
int main(){
	cin.getline(a,81); //输入一个长度最大为80的,字符串a 
	fun(); //将a里面的单词拷贝到s里面 
	for(int i=sum;i>=0;i--){ //倒序输出单词 
		if(i!=0) //中间判断 
		  cout<<s[i]<<" "; //输出空格 
		else //结尾判断 
		  cout<<s[i]; //不输出空格 
	}
	cout<<endl;
	return 0;
}

 时间复杂度:

  时间复杂度为O(N),已经算是非常快的了!

总结:

  这道题考了学生们关于双指针,字符串处理的应用,应用双指针,可以非常有效的解决运用双重for循环的巨大时间开销问题,时间优化了不少!

题目链接:

PTA | 程序设计类实验辅助教学平台千名教师建设,万道高质量题目,百万用户拼题的程序设计实验辅助教学平台https://pintia.cn/problem-sets/994805260223102976/exam/problems/994805314941992960

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74906.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RocketMq使用(5.0)

RocketMq使用&#xff08;5.0&#xff09; 基础概念 这一部分我们可以结合一下管理控制台&#xff0c;先来理解下RocketMQ的一些重要的基础概念&#xff1a; 官方文档-消息发送领域模型&#xff1a;https://rocketmq.apache.org/zh/docs/domainModel/01main 整个消息流程&am…

【强化学习论文合集】十四.2018神经信息处理系统大会论文(NIPS2018)

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。 本专栏整理了近几年国际顶级会议中,涉及强化学习(Rein…

倍福:通过FB_EcCoeSdoWrite功能块写入第三方伺服的COE参数

本文介绍通过PLC写入第三方伺服的COE参数。例如力矩等信息 功能块介绍 首先需要用到的功能块为FB_EcCoeSdoWrite,该参数是写入COE online中的数据。 PLC程序编写 首先扫描程序配置,并链接好NC变量如下所示 然后再COEOnline中确定需要写入的变量的地址如下所示: 确定所在…

Hello erupt-cloud-node

前言 cloud-node我们可以用来封装某些场景下使用的功能集。不启动不用&#xff0c;启动了就用&#xff0c;方便得很。后台管理突然就变成了搭积木。 搭建项目 这个项目的基础设施我们都使用和主项目相同的。所以&#xff0c;我们这里就先搭建项目来看一下。先说目录结构&…

网络属性设置函数 setsockopt (设置绑定地址快速重用)

setsockopt 函数可以设置应用层、传输层、网络层的一些属性&#xff0c;比如 应用层&#xff1a;绑定地址快速重用、允许广播、传输层&#xff1a;设置TCP最大数据段大小网络层&#xff1a;设置IP首部选项、服务类型、生存时间目录 1、setsockopt 参数和返回值解析 2、使用s…

重点| 系统集成项目管理工程师考前50个知识点(3)

本文章总结了系统集成项目管理工程师考试背记50个知识点&#xff01;&#xff01;&#xff01; 帮助大家更好的复习&#xff0c;希望能对大家有所帮助 比较长&#xff0c;放了部分&#xff0c;需要可私信&#xff01;&#xff01; 19、项目管理计划的主要内容&#xff1a; &…

RNN--学习笔记

RNN引入“记忆”的概念&#xff0c;即输出需要依赖于之前的输入序列&#xff0c;并把关键输入记住。循环2字来源于其每个元素都执行相同的任务&#xff1b;并⾮刚性地记忆所有固定⻓度的序列&#xff0c;而是通过隐藏状态来存储之前时间步的信息。不同类型的RNN&#xff1a;One…

SpringBoot的自动配置原理

目录 一、关于SpringBoot的启动原理 二、源码分析 SpringBootConfiguration ComponentScan EnableAutoConfiguration Import(AutoConfigurationImportSelector.class) AutoConfigurationPackage 三、总结 一、引言 要理解SpringBoot自动配置原理&#xff0c;首先要从S…

java计算机毕业设计ssm校园二手平台交易系统11w7i(附源码、数据库)

java计算机毕业设计ssm校园二手平台交易系统11w7i&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#…

【计算机视觉】Deep SORT多目标跟踪算法讲解(图文解释 超详细)

觉得有帮助请点赞关注收藏~~~ 一、目标跟踪简介 目标跟踪算法可以进行轨迹特征的分析和提取&#xff0c;以弥补目标检测的不足&#xff1b;有效地去除误检&#xff0c;提高检测精度&#xff0c;为进一步的行为分析提供基础。例如&#xff0c;在自动驾驶系统中&#xff0c;目标跟…

4 - 线程池 Java内置的线程池 - ScheduledExecutorService

ScheduledExecutorService ScheduledExecutorService是ExecutorService的子接口&#xff0c;具备了延迟运行或定期执行任务的能力。 1、常用获取方式 &#xff08;注&#xff1a;还是通过 Executors. 的方式进行调用&#xff09; 1&#xff09;static ScheduledExecutorSer…

5702开发板用户手册

一、 底板简介 1.1 产品简介 在这里&#xff0c;对这款 MP5702 开发板底板进行简单的功能介绍。本公司相关核心板都可与其对接&#xff0c;型号如 MP5652&#xff08;请详见用户手册&#xff09;。底板核心板的模式来设计组成完整的开发。底板和核心板之间使用高速板间连接器连…

EMCC 中 运用SQL 优化的建议

1. 性能中心 关于SQL的执行信息 2. 优化SQL&#xff1a; ------整个过程SQL 实现---------------------- DECLARE my_task_name VARCHAR2(30); my_sqltext CLOB; BEGIN my_sqltext : SELECT * || FROM sales || WHERE prod_id 10 AND || cust_id …

Android穿戴设备新功能Compose for Wear OS 1.1

Todoist的增长率提高了50%&#xff0c;因为为Wear 3和Outdooractive重建了他们的应用程序&#xff0c;将开发时间缩短了30%&#xff0c;并显着提高了开发人员的生产力和更好的设计/开发人员协作&#xff1a; “Compose 使 UI 代码更易于编写和阅读&#xff0c;使我们能够在设计…

倍福:通过读取FB_EcCoESdoRead第三方伺服的COE参数,例如力矩等信息

本文介绍通过PLC读取第三方伺服的COE参数。例如力矩等信息 功能块介绍 首先需要用到的功能块为FB_EcCoESdoRead,该参数是读取COE online中的数据。PLC程序编写 首先扫描程序配置,并链接好NC变量如下所示然后再COEOnline中确定需要读取的变量的地址如下所示: 确定所在主站的…

shell 基本语法第一讲之(变量的使用、文件名替换和参数扩展、命令代换、算术代换、单引号、双引号)

1、变量的使用 #!/usr/sh #1、声明即赋值 注意:等号两边不能留空格&#xff0c;留了空格就编程一个命令两个参数 varNamename #2、使用变量 $varName ${varName}2、变量的分类 shell 内变量在shell的解析环境中存在的变量全局范围的变量(全局变量)shell中*不使用任何修饰符修…

【C++修炼之路】11. list类

每一个不曾起舞的日子都是对生命的辜负 list本节目标1. list的介绍及使用1.1 list的介绍1.2 list的使用1.3 模拟list节点的结构1.4 list类的封装补充&#xff1a;list的自带排序函数1. sort2. unique2. list的迭代器2.1 list的迭代器失效问题2.2 迭代器的分类2.3 迭代器的模拟实…

java基于Springboot的校园新闻网站-计算机毕业设计

项目介绍 本论文主要论述了如何使用JAVA语言开发一个校园新闻网站 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述校园新闻网站的当前背景以及系统开发的目的…

阿里全心打造,“Java核心精选宝册”助成长,面试实战一步到位

一、前言 接下来就是即将到来的金三银四了&#xff0c;这个时期是面试跳槽的高峰期&#xff0c;果不其然&#xff0c;有很多的朋友私信给我&#xff0c;询问我有没有对金三银四有帮助的一些笔记可以分享&#xff0c;所以就有了这篇文章&#xff0c;下面会大概的展示一下笔记的…

【Java面试八股文宝典之基础篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day12

大家好&#xff0c;我是陶然同学&#xff0c;软件工程大三明年实习。认识我的朋友们知道&#xff0c;我是科班出身&#xff0c;学的还行&#xff0c;但是对面试掌握不够&#xff0c;所以我将用这100多天更新Java面试题&#x1f643;&#x1f643;。 不敢苟同&#xff0c;相信大…