字符串变形 C++

2023-11-03

目录

题目描述

思路分析

AC代码

题目描述

对于一个长度为 n 字符串,我们需要对它做一些变形。

首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把这个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。

比如"Hello World"变形后就变成了"wORLD hELLO"。

数据范围: 1\le n \le 10^61≤n≤106 , 字符串中包括大写英文字母、小写英文字母、空格。

进阶:空间复杂度 O(n)O(n) , 时间复杂度 O(n)O(n)

输入描述:

给定一个字符串s以及它的长度n(1 ≤ n ≤ 10^6)

返回值描述:

请返回变形后的字符串。题目保证给定的字符串均由大小写字母和空格构成。

思路分析

要看清楚题目说的是将单个单词里面的字母顺序,而不是将这个字符串里面的单词的顺序颠倒。

因为C++的算法库里面有reverse函数,它的作用就是将整个字符串的字符顺序颠倒过来,所以我的思路比较大众化,为将单词里面的字母顺序颠倒,首先用reverse函数将整个字符串的字符顺序颠倒,然后,用空格作为字符串划分单词的判断点,对每一个由空格隔开的部分(即单词)再次使用reverse函数颠倒。

为了方便,我尽可能地调用库函数,像判断字母大小写,字符串的长度之类的。

我里面还用到了auto变量,auto变量属实好用。

AC代码

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main(){
	string s;
	int n,i,j;
	getline(cin,s);
	cin>>n;
	for(auto& element:s){
		if(isupper(element))
		element+=32;
		else if(islower(element))
		element-=32;
	}
	reverse(s.begin(),s.end());
	for(i=0;i<n;i++){
		for(j=i;j<n;j++)
		if(s[j]==' ')
		break;
		reverse(s.begin()+i,s.begin()+j);
		i=j;
	}
	cout<<s;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符串变形 C++ 的相关文章

  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • 网络安全这条路怎么走?应该学些什么?

    我之前就写过一篇文章专门解答了这个问题 但是还是有很多小伙伴并不清楚这条路该怎么走下去 不同于Java C C 等后端开发岗位有非常明晰的学习路线 网路安全更多是靠自己摸索 要学的东西又杂又多 难成体系 网络安全虽然是计算机众多方向中的一支
  • 一文带你了解如何编写测试用例?【0基础也能看懂】

    我是小濠 一个快要秃头的测试人 欢迎点赞 收藏 留言 如有错误敬请指正 我收集了一些软件测试资料 关注我公众号 程序员小濠 免费领取 送给大家一句话 世界的美丽 来源于你的努力 因此 在介绍如何编写测试用例之前 先看一个软件系统登录功能的测
  • 查看WIN10密钥备忘

    查看WIN10密钥备忘 1 我们按下 Win R 打开运行或者开始菜单右键选择运行 输入 regedit 点击确定打开注册表编辑器 2 依次展开 HKEY LOCAL MACHINE SOFTWARE Microsoft Windows N
  • 【Android -- 相机】调用摄像头拍照 & 选择照片

    效果图 现在很多应用中都会要求用户上传一张图片来作为头像 首先我在这接收使用相机拍照和在相册中选择图片 接下来先上效果图 实现代码 1 布局文件
  • Android OpenGL ES 3.0 开发 :3D实例化(Instancing 3D)

    1 OpenGL ES 实例化 Instancing OpenGL ES 实例化 Instancing 是一种只调用一次渲染函数就能绘制出很多物体的技术 可以实现将数据一次性发送给 GPU 告诉 OpenGL ES 使用一个绘制函数 将这些
  • Leetcode 82. Remove Duplicates from Sorted List II

    题目描述 Given a sorted linked list delete all nodes that have duplicate numbers leaving only distinct numbers from the orig
  • 数据库设计步骤(超级详细)

    数据库设计 我们先来看这样一个问题 假如遇到下面这样的设计需求 我们如何完成数据库的设计呢 设计需求 假设商品经销商有基本实体集 供应商Vendors 产品目录Products 顾客信息Customers和顾客订单Orders 各个实体的属
  • java.lang.object 下载_Java总结篇系列:java.lang.Object

    从本篇开始 将对Java中各知识点进行一次具体总结 以便对以往的Java知识进行一次回顾 同时在总结的过程中加深对Java的理解 Java作为一个庞大的知识体系 涉及到的知识点繁多 本文将从Java中最基本的类java lang Objec
  • QT-信号和槽函数

    信号和槽函数 signals slots Qt5作为c 的GUI开发类库 其最具代表性的特点就是信号和槽 类似于中断和中断处理函数调用的回调 callback 函数 但具体实现在应用层 并且使用起来较后者更为方便 作用 用于对象间的通信 实
  • 计算机网络学习—iptables的SNAT和DNAT

    iptables的SNAT和DNAT iptables SNAT SNAT策略概述 SNAT策略的典型应用环境 局域网主机共享单个公网IP地址接入internet SNAT策略的原理 源地址转换 Source Network Address
  • [前端系列第3弹]JS入门教程:从零开始学习JavaScript

    本文将带领大家 从零开始学习JavaScript fighting 目录 一 JavaScript简介 二 变量和数据类型 三 注释和分号 四 算术运算符 五 表达式和语句 六 代码块和作用域 七 函数 最重要 一 JavaScript简介
  • ES索引的备份与恢复

    ES索引的备份与恢复 1 索引的备份与恢复 步骤首先是进行创建备份仓库这里选择如下 usr local backup 在es的yml下进行添加配置 path repo usr local backup 然后在kibana中执行 PUT sn
  • 战略方法论

    父文章 人人都是战略家 2018年注册会计师公司战略与风险考点 swot分析 知识点 注册会计师 SWOT分析 一 基本原理 所谓SWOT分析 即基于内外部竞争环境和竞争条件下的态势分析 就是将与研究对象密切相关的各种主要内部优势 劣势和外
  • BRDF

    一 BRDF简介 BRDF表示的是双向反射分布函数 Bidirectional Reflectance Distribution Function 它描述了光线如何在物体表面进行反射 可以用来描述材质属性 BRDF的输入参数是入射光的的仰角
  • CSRF漏洞原理/防御

    CSRF 跨站请求伪造 原理 CSRF是指攻击者利用已登录的用户身份 伪造用户请求 从而执行非法操作 触发点 检测 CSRF常出现在留言 论坛 后台管理 用户中心等功能 CSRF有三个前提 第一 目标用户处于登录状态 第二 后端代码逻辑不严
  • 在matlab中计算距离矩阵

    matlab中自带的计算距离矩阵的函数有两个pdist和pdist2 前者计算一个向量自身的距离矩阵 后者计算两个向量之间的距离矩阵 基本调用形式如下 D pdist X D pdist2 X Y 这两个函数都提供多种距离度量形式 非常方便
  • html之select标签

    基本用法
  • js实现图片压缩上传

    javascript 处理图片压缩 剪切 模糊和上传 最近在研究H5前端图片处理相关技术 方向有图片压缩 裁切 旋转 模糊等 现在已经整理成对应的demo 上传至github 一 js脚本实现图片压缩 CompressImageUtiles
  • JVM(8)--垃圾回收算法与垃圾回收器

    一 概述 深入理解java虚拟机中写到 Java与C 之间有一堵由内存动态分配和垃圾收集技术所围成的高墙 墙外面的人想进去 墙里面的人却想出来 Java在动态内存分配与回收上已经是自动化的 但是当需要排查各种内存溢出 内存泄漏问题时 当垃圾
  • 字符串变形 C++

    目录 题目描述 思路分析 AC代码 题目描述 对于一个长度为 n 字符串 我们需要对它做一些变形 首先这个字符串中包含着一些空格 就像 Hello World 一样 然后我们要做的是把这个字符串中由空格隔开的单词反序 同时反转每个字符的大小