单词倒排(C语言详解)
题目:单词倒排
描述:对字符串中的所有单词进行倒排。
说明:
1、构成单词的字符只有26个大写或小写英文字母;
2、非构成单词的字符均视为单词间隔符;
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
4、每个单词最长20个字母
数据范围:字符串长度满足 1≤n≤10000;
输入描述:
输入一行,表示用来倒排的句子
输出描述:
输出句子的倒排结果
示例一:
输入:I am a student
输出:student a am I
示例二:
输入:$bo*y gi!r#l
输出:l r gi y bo
解题思路:
1,整体思想是双指针法,定义一对快慢指针 fast,slow;
2,找字母尾部:首先让 fast 指向数组的尾元素,然后找到从后向前找字母的尾部,当 arr[fast] 不是字母时 fast--,直到指向字母,而后令 slow = fast ,此时 slow 指向字母尾部;
3,找字母头部:当arr[fast] 是字母时 fast--,直到指向非字母,然后打印 arr[fast+1] 到arr[slow] 之间的值即可,后面加上分隔符;
思路实现:
先输入字符串因为带有空格,所以 scanf 不好使,使用 gets ,运用字符串函数 strlen 算出数组实际个数,随后定义双指针 fast,slow 并将其赋值;
#include<string.h>
int main() {char arr[10001]={0};gets(arr);int len=strlen(arr);int fast=len-1;int slow=0;
fast=len-1,从后往前开始遍历数组,并打印;
找字母尾部:首先让 fast 指向数组的尾元素,然后找到从后向前找字母的尾部,当 arr[fast] 不是字母时 fast--,直到指向字母,而后令 slow = fast ,此时 slow 指向字母尾部;
while(fast>=0 && !isalpha(arr[fast])){fast--;}slow=fast;
找字母头部:当arr[fast] 是字母时 fast--,直到指向非字母,然后打印 arr[fast+1] 到 arr[slow] 之间的值即可,后面加上分隔符,并且打印;
while(fast>=0 && isalpha(arr[fast])){fast--;}int i=0;for(i=fast+1;i<=slow;i++){printf("%c",arr[i]);}printf(" ");
以上就是这道题的解析,一下是程序源代码:
#include <stdio.h>
#include<string.h>
int main() {char arr[10001]={0};gets(arr);int len=strlen(arr);int fast=len-1;int slow=0;while(fast>=0){while(fast>=0 && !isalpha(arr[fast])){fast--;}slow=fast;while(fast>=0 && isalpha(arr[fast])){fast--;}int i=0;for(i=fast+1;i<=slow;i++){printf("%c",arr[i]);}printf(" ");}return 0;
}
如有不足之处欢迎来补充交流!
完结。。。
相关文章:
单词倒排(C语言详解)
题目:单词倒排 描述:对字符串中的所有单词进行倒排。 说明: 1、构成单词的字符只有26个大写或小写英文字母; 2、非构成单词的字符均视为单词间隔符; 3、要求倒排后的单词间隔符以一个空格表示;如果原字…...
一、数学建模之线性规划篇
1.定义 2.例题 3.使用软件及解题 一、定义 1.线性规划(Linear Programming,简称LP)是一种数学优化技术,线性规划作为运筹学的一个重要分支,专门研究在给定一组线性约束条件下,如何找到一个最优的决策&…...
【推荐】深入浅出学习Spring框架【中】
目录 1.AOP是什么? 2.案列: 3.spring的aop的专业术语 4.代码模拟 4.1 前置通知 3.2.后置通知 3.3.环绕通知 3.4.异常通知 3.5.过滤通知 1.AOP是什么? 面向切面编程(Aspect-Oriented Programming)是一种编程范式,它的主要…...
使用 HTML、CSS 和 JavaScript 创建多步骤表单
使用 HTML、CSS 和 JavaScript 创建多步骤表单 为了处理又长又复杂的表单,我们需要将它们分成多个步骤。通过一次只在屏幕上显示一些输入,表单会感觉更容易理解,并防止用户感到被大量的表单字段淹没。 在本文中,我将逐步指导如何…...
C语言笔试训练【第九天】
文章目录 👿1、下列程序的输出是( )💎2、二维数组X按行顺序存储,其中每个元素占1个存储单元。若 X[4][4] 的存储地址为 Oxf8b82140 , X[9][9] 的存储地址为 Oxf8b8221c ,则 X[7][7] 的存储地址为( …...
左邻右舍裂差法求和 以及 连续自然数的立方和公式
左邻右舍裂差法求和 1 2 2 3 3 4 4 5 . . . n ( n 1 ) ? 1\times22\times33\times44\times5...n\times(n1)? 12233445...n(n1)? 看成数列 a n n 2 n , ( n ∈ N ) a_nn^2n, (n\in N^) ann2n,(n∈N) 的前 n n n 项和 S n S_n Sn. 原理:将…...
阿里云故障洞察提效 50%,全栈可观测建设有哪些技术要点?
本文根据作者在「TakinTalks 稳定性社区 」公开分享整理而成 #一分钟精华速览# 全栈可观测是一种更全面、更综合和更深入的观测能力,能协助全面了解和监测系统的各个层面和组件,它不仅仅是一个技术上的概念,更多地是技术与业务的结合。在“…...
docker run 命令30个常用参数详解
文章目录 0.前言docker run 命令示例 2.Docker run 多种用法知其然知其所以然1. 基本用法2. 启动交互式容器3. 映射端口4. 挂载文件/目录5. 设置环境变量6. 指定容器名称7. 后台运行容器8. 重启策略9. 其他参数 2. docker run 命令参数详解1. -d:以后台模式…...
[kali]kali linux镜像下载地址
百度网盘地址 链接:https://pan.baidu.com/s/1cxySSyQdLIkox-w_CSka4Q 提取码:cevu 官方下载合集 https://www.kali.org/downloads/(所有版本) 独立链接: 2020.3版本 64位:https://cdimage.kali.org/kali-2020.…...
考研408 | 【操作系统】操作系统的概述
操作系统的概念和功能 导图 操作系统的功能和目标 1.作为系统资源的管理者 2.向上层提供方便易用的服务 3.作为最接近硬件的层次 操作系统的特征 导图 并发 并发VS并行 共享 并发和共享的关系 虚拟 异步 操作系统的发展和分类 导图 1.手工操作 2.批处理阶段--单道批处理系统…...
VM部署CentOS并且设置网络
最近在准备学习k8s,需要部署服务器,所以需要在虚拟机中部署centOS服务,下面是在虚拟机中部署CentOs服务。 其中VM地址在下面 链接:https://pan.baidu.com/s/1hSKr5RfwsabdzNOvHmZ5kw?pwdkys5 提取码:kys5 其中Cent…...
多维时序 | MATLAB实现KOA-CNN-BiGRU-Attention多变量时间序列预测
多维时序 | MATLAB实现KOA-CNN-BiGRU-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现KOA-CNN-BiGRU-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现KOA-CNN-BiGRU-Attention多变量时间序列预测,KOA-…...
深入Redis线程模型
目录 1.前言 2.Redis为什么快? 3.Redis 为何选择单线程? 3.1可维护性 3.2并发处理 3.3性能瓶颈 4.Reactor设计模式 5.Redis4.0前 单线程模型 - Event Loop 6.Redis4.0后 多线程异步任务 7.Redis6.0后 多线程网络模型 1.前言 这篇文章我们主要围绕…...
idea cannot download sources 解决方法
问题 点击class文件右上角下载源码失败 解决方案 找到idea terminal 控制台cd 至maven工程执行 mvn dependency:resolve -Dclassifiersources...
CS:GO升级 Linux不再是“法外之地”
在前天的VAC大规模封禁中,有不少Linux平台的作弊玩家也迎来了“迟到”的VAC封禁。 一直以来,Linux就是VAC封禁的法外之地。虽然大部分玩家都使用Windows平台进行游戏。但实际上,使用Linux畅玩CS:GO的玩家也不在少数。 以前V社主要打击W…...
手写spring笔记
手写spring笔记 《Spring 手撸专栏》笔记 IoC部分 Bean初始化和属性注入 Bean的信息封装在BeanDefinition中 /*** 用于记录Bean的相关信息*/ public class BeanDefinition {/*** Bean对象的类型*/private Class beanClass;/*** Bean对象中的属性信息*/private PropertyVal…...
shell的两种属性: 交互(interactive)与登录(login)
1. 背景 在看shell变量的时候引起了兴趣: 局部变量,全局变量,环境变量,shell的配置文件,参考博客: http://c.biancheng.net/view/773.html 2. 交互式与非交互式 参考博客: shell的两个属性:是否交互式(interactive), 是否登录…...
实现简单的element-table的拖拽效果
第一步,先随便创建element表格 <el-table ref"dragTable" :data"tableData" style"width: 100%" border fit highlight-current-row><el-table-column label"日期" width"180"><template slot-sc…...
Web网页浏览器远程访问jupyter notebook服务器【内网穿透】
文章目录 前言1. Python环境安装2. Jupyter 安装3. 启动Jupyter Notebook4. 远程访问4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5. 固定公网地址 前言 Jupyter Notebook,它是一个交互式的数据科学和计算环境,支持多种编程语言,如…...
干翻Dubbo系列第十一篇:Dubbo常见协议与通信效率对比
文章目录 文章说明 一:协议 1:什么是协议 2:协议和序列化关系 3:协议组成 (一):头信息 (二):体信息 4:Dubbo3中常见的协议 5:…...
Qt, C++数据类型扩展问题
Qt项目中ObjectDic类的类型扩展与代码优化 前言 在Qt项目开发中,我们经常会遇到需要处理不同类型数据的情况,尤其是当涉及到负数时,类型的选择就显得尤为重要。本文将详细介绍如何在Qt项目中扩展ObjectDic类的类型支持,从无符号整…...
多宽带联网(五) OpenWrt中MWAN3高级策略分流实战(游戏加速、视频优化场景)
1. MWAN3策略分流的核心价值 家里拉了两条宽带却发现刷视频卡、打游戏延迟高?这种情况我遇到过太多次了。去年给朋友家调试网络时,他同时接了电信和联通两条200M宽带,但看4K视频还是缓冲,玩外服游戏延迟总在200ms以上。后来用Open…...
打造企业级 AI Agent:任务编排 + 多工具系统(Python 深度实战)
如果你已经写过简单的 AI Agent,你很快会遇到一个问题:❌ 能跑 Demo,但一到真实业务就崩为什么?因为你缺的不是模型,而是这三样东西:任务编排(Workflow)多工具系统(Tool …...
Linux系统CPU负载与使用率详解及性能监控
1. CPU负载与CPU使用率的本质区别在Linux系统监控和性能调优过程中,CPU负载和CPU使用率这两个指标经常被混淆使用。作为系统管理员,我曾多次遇到团队成员将这两个概念混为一谈的情况,这往往导致对系统性能问题的误判。让我们先从一个实际案例…...
如何通过Snap Hutao实现原神游戏决策的智能化?
如何通过Snap Hutao实现原神游戏决策的智能化? 【免费下载链接】Snap.Hutao 实用的开源多功能原神工具箱 🧰 / Multifunctional Open-Source Genshin Impact Toolkit 🧰 项目地址: https://gitcode.com/GitHub_Trending/sn/Snap.Hutao …...
PHY芯片寄存器设计揭秘:从5位地址到分页扩展的演进史
PHY芯片寄存器设计演进:从5位地址到分页扩展的技术革命 当我们在享受千兆以太网带来的高速数据传输时,很少有人会想到这背后隐藏着一场持续了数十年的寄存器架构演进。PHY芯片作为网络通信的物理层核心,其寄存器设计经历了从简单固定到复杂可…...
AI辅助开发新体验:描述需求即可让快马AI生成智能浏览器下载插件
今天想和大家分享一个用AI辅助开发浏览器插件的实战经验。最近在InsCode(快马)平台上尝试开发了一个智能下载插件,整个过程让我深刻体会到AI如何改变传统开发流程。 需求分析 这个插件的核心目标是让下载变得更智能。传统下载工具需要我们手动选择保存位置ÿ…...
QODER
...
Step3-VL-10B内网穿透应用:安全远程模型调用方案
Step3-VL-10B内网穿透应用:安全远程模型调用方案 1. 场景需求与痛点分析 很多企业和机构在内部部署了强大的多模态AI模型,比如Step3-VL-10B这样的视觉语言模型,能够处理图像和文本的复杂任务。但这些模型通常运行在内网环境中,外…...
Java学习——String 类的不可变性、底层实现(JDK1.8+)
目录 一、核心定义与设计思想 1. 核心定义 2. 核心设计思想 二、底层实现原理(含 JDK 源码分析 / 反编译验证) 1. JDK1.8 String 核心源码解析 2. 字符串常量池(JDK1.8 底层) 3. 反编译验证(不可变性 编译器优…...
