11. 按单词下标区间翻转文章内容

news/2024/12/22 23:46:04/

题目描述

给定一段英文文章片段,由若干单词组成,单词间以空格间隔,单词下标从0开始。
请翻转片段中指定区间的单词顺序并返回翻转后的内容。

例如给定的英文文章片段为"I am a developer",翻转区间为[0,3],则输出“developer a am I”。

String reverseWords(String s, int start, int end)

输入描述

使用换行隔开三个参数

  • 第一个参数为英文文章内容即英文字符串
  • 第二个参数为待翻转内容起始单词下标
  • 第三个参数为待翻转内容最后一个单词下标

输出描述

翻转后的英文文章片段所有单词之间以一个半角空格分隔进行输出。

作者:不进大厂不改名_被占用
链接:https://juejin.cn/post/7298635806494113811
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

示例1
输入∶
l am a developer.
1
2
输出:
l a am developer.
示例2
输入∶
Hello world!
0
1
输出:
world! Hello
说明:
输入字符串可以在前面或者后面包含多余的空格,但是反转后的不能包含多余空格。
示例3
输入∶
I am a developer.
0
3
输出:
developer. a am l
说明:
如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
示例4
输入:
Hello!
0
3
输出:
Hello!
说明:
指定反转区间只有一个单词,或无有效单词则统—输出原字符串。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/qq_31076523/article/details/134808769

一、问题分析

首先读题,仔细看描述中的内容,发现需求是

1.输入一个英文文章片段,

2.翻转指定区间的单词顺序,

3.标点符号和普通字母一样处理

4.输入描述:使用换行隔开三个参数

5.第一个参数为英文文章内容,即英文字符串

6.第二个参数为翻转起始单词下标,下标从0开始

7.第三个参数为结束单词下标

8.输出描述:反转后的英文文章片段,所有单词之间以一个半角空格分隔进行输出

二、解题思路

1. 首先定义一个char str[1000];用来读取字符串

2.然后定义两个整数int start, end;用来读取翻转的起始和结束位置

3.从字符串开始到start,正常输出单词

4.到start之后,定义一个字符串数组,char temp[end - start][100];

5.使用字符串数组,从后往前end-start到0读取单词

6.然后从0到end-start,输出temp

7.然后end到字符串末尾,正常输出单词。

三、具体步骤

使用的语言是C

#include <stdio.h>
#include <string.h>int main() {char str[1000];int start = 0, end = 3;fgets(str, sizeof(str), stdin);str[strcspn(str, "\n")] = '\0';scanf("%d\n%d", &start, &end);// printf("The input string is :%s\n", str);char *temp = strtok(str, " ");for(int i = 0; i < start; i++) {printf("%s ", temp);temp = strtok(NULL, " ");}int len = end - start + 1;char tempreverse[len][100];for(int i = len - 1; i >= 0; i--) {strcpy(tempreverse[i],temp);temp = strtok(NULL, " ");}for(int i = 0; i < len; i++) {printf("%s ", tempreverse[i]);}while(temp != NULL) {printf("%s", temp);temp = strtok(NULL, " ");if(temp != NULL) {printf(" ");}}return 0;
}


http://www.ppmy.cn/news/1557324.html

相关文章

macOS 配置 vscode 命令行启动

打开 vscode 使用 cmd shift p 组合快捷键&#xff0c;输入 install 点击 Install ‘code’ command in PATH Ref https://code.visualstudio.com/docs/setup/mac

mac uniapp 转为微信小程序开发

mac uniapp 转为微信小程序开发 1.进入微信公众平台获取小程序Appid在manifest.json配置 2.打开微信开发者工具进入设置—安全设置 3.勾选服务端口 4.点击运行至微信开发工具可自动打开

前端如何检测用户登录状态是否过期

在前端开发中 , 判断用户登录状态是否过期是一个常见的需求。尤其是在复杂的场景中 , 准确判断用户登录状态是否过期是保障用户体验的关键环节。这一过程涉及到服务器与前端之间的紧密协作 , 以及多种技术手段的综合运用 , 还是蛮有挑战性的。 判断登录过期的主要方法有: 检查令…

构建一个rust生产应用读书笔记6-拒绝无效订阅者02

打破域子模块 通常指的是对应用程序的某个特定业务领域进行重构或重新组织。这可能包括拆分、合并或重组代码结构以更好地反映业务规则和逻辑。下面是一些关于如何处理这种情况的建议&#xff1a; 1. 理解当前状态 首先&#xff0c;确保你完全理解现有系统的工作方式。这包括…

Java项目--仿RabbitMQ的消息队列--内存数据管理

目录 一、引言 二、MemoryDataCenter 1.设计数据结构 2.封装Exchange方法 3.封装MsgQueue方法 4.封装Binding方法 5.封装Message 6.实现待确定消息的管理 7.将数据从硬盘上恢复到内存中 三、测试MemoryDataCenter 1.准备工作 2.测试交换机 3.测试队列 4.测试绑定 …

Go, Jocko, Kafka

本篇内容是根据2016年8月份# 31. Go, Jocko, Kafka 音频录制内容的整理与翻译 Travis Jeffery 参加了节目&#xff0c;谈论 Go、Jocko、Kafka、Kafka 的存储内部结构如何工作&#xff0c;以及有趣的 Go 项目和新闻。 Erik St. Martin: 大家好&#xff0c;欢迎回到《GoTime》的另…

建站经验:服务器同步与数据库备份的终极解决方案

兼容宝塔面板&#xff0c;请按照步骤来配置 一键部署脚本 curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/rsync-vps.sh && chmod x rsync-vps.sh && ./rsync-vps.sh注意事项 提示&#xff08;宝塔面板&#xff09;&#xff1a;两…

对 MYSQL 架构的了解

MySQL 是一种广泛使用的关系型数据库管理系统&#xff0c;其架构主要包括以下几个关键部分&#xff1a; 一、连接层 客户端连接管理&#xff1a;MySQL 服务器可以同时处理多个客户端的连接请求。当客户端应用程序&#xff08;如使用 Java、Python 等语言编写的程序&#xff09;…