第10 题 翻转句子中单词的顺序。

输入一个英文句子,翻转句子中单词的顺序,单词内字符顺序不变 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。 为简单起见,标点符号和普通字母一样处理。 例如输入“I am a student.”,则输出“student. a am I”。处理方法是首先将整个句子翻转,然后再将其中的每个单词翻转。代码如下: #include using namespace std; void myReverse 阅读详情
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。

例如输入“I am a student.”,则输出“student. a am I”。


思路:

(1) 关键死空格符的位置,记录下每个空格符的位置;

(2)字符串逆置是一个普通的问题,我们可以将这个字符串看成多个字符串;

(3)字符串逆置的方法:普通逆序、原地逆序(指针、递归非递归)、异或交换;


#include <iostream>
#include <string>
#include <stack>

using namespace std;
typedef stack<int> STI;

void Reverse(string &str,int base,int top)
{
	if ( top == base)
		return ;

	while ( base < top )
	{
		str[top] = str[top] ^ str[base];
		str[base] = str[top] ^ str[base];
		str[top] = str[top] ^ str[base]; // 采用异或的方法交换
		top --;
		base ++;
	}

	return ;
}

int main()
{
	STI st;
	string str;

	st.push(-1);
	getline(cin,str);

	for (int i = 0; str[i] != '\0';i ++)
		if (str[i] == ' ')
			st.push(i);

	int length = i;
	int top =0;
	int base = length;
	while ( !st.empty() )
	{
		top = base - 1;
		base = st.top();
		st.pop();

		Reverse(str,base+1,top);
	}
	Reverse(str,0,length-1);

	for (i = 0;i < length;i ++)
		cout << str[i];
	cout << endl;

	return 0;
}




解题笔记(8)——翻转句子中单词的顺序 问题描述:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。         思路:先逆转整个句子,然后从首字符开 阅读详情

相关推荐

C语言强化(九)翻转句子中单词的顺序

这是到很常见的题目,非常简单,但你用到数据结构了吗,或者说你用对了吗?

SexyCode 2743

[剑指 offer]--字符串--面试题58 - I. 翻转单词顺序

1 题目描述 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。 示例 1: 输入: “the sky is blue” 输出: “blue is sky the” 示例 2: 输入: " hello world! " 输出: “world! h...

努力变得不菜的菜鸡的博客 613

从‘查理复用’到TM52F1363:深入剖析5脚188数码管的驱动原理与避坑指南

本文深入解析了5脚188数码管的驱动原理,重点介绍了查理复用技术如何通过5个IO引脚高效驱动188段显示,并详细探讨了TM52F1363单片机的寄存器配置与驱动实现。文章还提供了常见问题的解决方案和性能优化技巧,帮助开发者避免实际应用中的各种陷阱。

weixin_29159441的博客 481

PAT Basic Level 1042 字符统计 (20 分)

题目链接: https://pintia.cn/problem-sets/994805260223102976/problems/994805280817135616 AC代码: #include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;cstdio&gt; #include &lt;string&gt; #incl...

qq_41755143的博客 218

从零到一:Halcon手眼标定的实战避坑指南

本文详细解析了Halcon手眼标定的完整流程,重点介绍了Eye-in-Hand和Eye-to-Hand两种模式的实操技巧与常见陷阱。通过九点法、N点法等实战案例,提供硬件配置检查、数据采集策略及误差修正方案,帮助开发者提升机械臂与视觉系统的协同精度,适用于工业自动化领域的精准定位与抓取任务。

neovim7hacker的博客 236

BUPT软件安全实验三

可以看出栈溢出对程序运行的安全性有很大的威胁,如果不对栈进行保护,只要系统中存在栈溢出漏洞,即可令攻击者通过非正当方法获取操作权限。(6)解决思考题,即:在不修改StackOverrun程序源代码的情况下,构造shellcode,通过JMP ESP的方式实现通过记事本打开shellcode.txt(可使用CreateProcessA或WinExec等API)。查看缓冲区信息,可以看到dest指向地址0x0012FAF0,其为数组的存放起始位置,也就是shellcode注入的起始位置。

7xun's space 1967

反转句子单词顺序

输入一句英文,单词用空格隔开,要求在主函数里调用函数reverse()将这句话的单词从后向前翻转过来。 要求:必须使用函数void reverse(char A[]) { }思路:可以先反转整个句子,再反转每个单词,也可以先反转每个单词再反转整个句子。 先反转每个单词:#include<iostream> using namespace std; void Reverseword(char s[

超超级钢铁侠 1077

汇川Inoproshop CIA402轴配置避坑指南:从虚轴到实轴

CIA402协议是CANopen定义运动控制设备行为的子协议,汇川EtherCAT伺服如SV630P底层均基于此。其原理是通过对象字典(如0x6040控制字、0x607A目标位置)实现PDO映射,将伺服行为抽象为PLC可编程的轴对象。技术价值在于统一不同驱动器的控制接口,降低运动控制开发门槛。典型应用场景包括丝杆机构、旋转台的位置控制与电子齿轮同步。在汇川Inoproshop中,新手常因单位换算、虚轴配置、PDO映射等环节卡壳,导致轴不动或飞车。本文系统梳理CIA402轴配置的完整流程与避坑技巧,助你快速上

weixin_34080951的博客 412

翻转句子中单词的顺序

微软面试题之一,难度系数低。 题目描述: 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。 句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。  例如输入“I am a student.”,则输出“student. a am I”。  逻辑分析:因为之前看过July的《程序与编程艺术系列》,而第一篇刚好就是左旋字符串问题,这题和左旋字符串问

pediy_yuhan的专栏 827

Tesseract OCR识别不准?手把手教你用PyAutoGUI提升自动点击脚本的准确率

本文针对Tesseract OCR在屏幕自动化中识别不准的问题,提供了一套完整的优化方案。通过PyAutoGUI精准截图、结合PIL和OpenCV进行图像预处理(如灰度化、对比度增强、自适应二值化),并调优Tesseract参数(如PSM模式、白名单),显著提升文本识别准确率。文章还介绍了结合模板匹配、构建容错循环等进阶技巧,帮助开发者打造高可靠性的自动点击脚本。

weixin_29093017的博客 544

ffmpeg在windows的安装、合并、切片、.m4s、.m3u8处理

自己处理视频,我用的工具是 ffmpeg,因为涉及到.m3u8格式和.m4s格式的一些操作。ffmpeg的介绍我就不多说了,这里是它的官网地址: https://ffmpeg.org/ ,这里是文档: https://ffmpeg.org/documentation.html (看的头大,没咋看下去)...

一只爱吃糖的小羊 2689

翻转句子中单词的顺序 的n种方法汇总

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。第一种方法:首先将整个句子翻转,然后再将其中的每个单词翻转。因为先颠倒句子中的所有字符。这时,不但翻转了句子中单词的顺序,而且单词内字符也被翻转了。我们再颠倒每个单词内的字符。由于...

qq_40604853的博客 2925

【瑞芯微px30】【RTL8363】【一】驱动移植-网卡驱动概述

linux rtl8363驱动移植

weixin_34799243的博客 1182

第10 题翻转句子中单词的顺序

翻转句子中单词的顺序。题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。 思路:把字符串按空格分割成数组,然后倒序拼接输出 但是:出题人的意图是不让你用string里的方法分割拼接。最后我只能自己想办法反转了,如果不...

diaofuju9849的博客 233

【即插即用模块】Transformer篇 | MICCAI 2025 | ReLULA:Q/K双ReLU线性注意力,既轻又准!

本文介绍了一种基于线性注意力的多实例学习模块(Lin-MIL),适用于高分辨率视觉任务。该模块通过转置计算顺序和使用ReLU激活,将计算复杂度从O(n²d)降至O(nd²),同时提升特征判别性。核心创新包括Q/K双ReLU激活、可学习温度系数和数值稳定归一化。实验表明,该模块在轻量化视觉任务中优于传统线性注意力和Mamba架构。代码实现了模块化矩阵乘法,支持即插即用替换ViT自注意力层。该模块特别适合计算病理学等需要处理大量图像补丁的任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 140

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

第10题:翻转句子中单词的顺序

欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/44906243 第10题:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入”I am a student.”,则输出”student. a am I”。此题就是对序列求逆,正如矩阵求

围炉夜话 1509

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

面试100题:10.翻转句子中单词的顺序

转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢! 题目: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“Iam a student.”,则输出“student

加油,码农! 519

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

IT公司100题-10-翻转句子中单词的顺序

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34010949的博客 138

41 翻转单词顺序: 输入一个英文句子,翻转句子中单词的顺序,但单词内字的顺序不变

一、题目 输入一个英文句子,翻转句子中单词的顺序,但单词内字的顺序不变。为简单起见,标点符号和普通字母一样处理。 举例说明 例如输入字符串”I am a student. ”,则输出”student. a am I”。 二、解题思路 第一步翻转句子中所有的字符。比如翻转“I am a student. ”中所有的字符得到”.tneduts a m a I”,此时不但翻转了句子中单词的顺序,连单词内...

皮卡丘的博客 3553

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,例如输入“I am a student”,输出“student a am I” 解题思路:定义一个字符型数组str[],内为原英文句子,定义一个字符型数组str1[],为重组后的英文句子。先求出英文句子的长度,利用for循环从元英文句子末尾向句首寻找空格符,当寻找到空格符时就将此个空格符前面一个英文单词复制到str1[]中,直

dengchuanjing的博客 7612

10、翻转句子中单词的顺序

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。 句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。 例如输入“I am a student.”,则输出“student. a am I”。 分析: 方法一、可以利用scanf函数以空格为分隔符的特性,按空格将字符串拆分成单词,并分别存入数组中,最后逆序输出即可。 方法二、二次颠倒字符。首先将

zwb8848happy的专栏 3587

翻转句子中单词的顺序 C语言

C语言 字符串 算法

MoXiaopeng的专栏 1万+

C++: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。解题思路:方法一:先用空格将句子分割成单个单词并按顺序存储,然后将这些单词进行反转方法二:先将整个句子反转,然后再单词内部进行反转具体实现:方法一: 基本思想:先用空格将句子分割成...

growth_path_的博客 3508

python输入一个英文句子、翻转句子中单词的顺序_58-01 翻转单词顺序

题目输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student.",则输出"student. a am I"。C 语言题解第一步翻转句子中所有的字符。比如翻转"I am a student."中所有的字符得到".tneduts a ma I",此时不但翻转了句子中单词的顺序,连单词内的字符顺序也被翻转了。第二...

weixin_39876145的博客 1885
上一篇: 第9 题 判断整数序列是不是二元查找树的后序遍历结果
下一篇: 第11 题 求二叉树中节点的最大距离...
Matrixlibing
博客等级 码龄14年 2粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值