C++程序:按字母顺序重新排列单词的位置
在这个问题中,一个字符串被作为输入,我们必须按字典顺序对字符串中出现的单词进行排序。为此,我们为字符串中的每个单词(之间用空格区分)分配一个从 1 开始的索引,并以排序索引的形式获得输出。
String = {“Hello”, “World”} “Hello” = 1 “World” = 2
由于输入字符串中的单词已按字典顺序排列,因此输出将打印为“1 2”。
让我们看看一些输入/结果场景 -
假设输入字符串中的所有单词都相同,让我们看看结果 -
Input: {“hello”, “hello”, “hello”} Result: 3
获得的结果将是单词的最后一个位置。
现在让我们考虑包含以相同字母开头的单词的输入字符串,结果输出将基于起始字母的后继字母。
Input: {“Title”, “Tutorial”, “Truth”} Result: 1 3 2
该方法的另一个常见输入场景和获得的结果如下 -
Input: {“Welcome”, “To”, “Tutorialspoint”} Result: 2 3 1
注意 - 返回的位置是这些单词在输入字符串中的原始位置。一旦单词在方法内排序,这些数字就不会改变。
算法
此方法使用矢量和地图抽象数据类型执行。
使用自动迭代器在字符串范围内遍历输入字符串。
按字母顺序交换单词是通过将这些元素推到矢量数据类型的后面来完成的。
一旦单词按字典顺序重新排列,这些单词在字符串中的原始位置就会作为输出返回。
示例
让我们有一个字符串是[“articles”,“point”,“world”],字符串的顺序是 -
“articles”: 1 “point”: 2 “world”: 3
我们可以将每个字符串与索引进行映射。然后我们可以对字符串进行排序,然后打印出映射的索引。我们可以使用 C++ 中的映射(map)这种排序数据结构来存储键值对。让我们快速实施我们的方法。
#include <iostream> #include <vector> #include <map> using namespace std; vector<int> solve(vector<string>& arr) { map<string, int> mp; int index = 1; for(string s : arr) mp[s] = index++; vector<int> res; for(auto it : mp) res.push_back(it.second); return res; } int main() { vector<string> arr = {"articles", "point", "world"}; vector<int> res = solve(arr); for(int i : res) cout << i << " "; return 0; }
输出
1 2 3
现在字符串的重新排序将是 -
“point,” “articles,” “world”
时间复杂度 - O(n * log n)
空间复杂度 - O(n)
结论
我们使用地图来为我们进行排序和映射。我们还可以使用哈希映射,对向量或数组进行排序,然后打印哈希映射中的索引。时间复杂度为 O(n*log(n)),空间复杂度为 O(n)。
以上是C++程序:按字母顺序重新排列单词的位置的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

本文将介绍如何在Windows11/10中根据拍摄日期对图片进行排序,同时探讨如果Windows未按日期排序图片应该如何处理。在Windows系统中,合理整理照片对于方便查找图像文件至关重要。用户可以根据不同的排序方式(如日期、大小和名称)来管理包含照片的文件夹。此外,还可以根据需要设置升序或降序排列,以便更灵活地组织文件。如何在Windows11/10中按拍摄日期对照片进行排序要按在Windows中拍摄的日期对照片进行排序,请执行以下步骤:打开图片、桌面或放置照片的任何文件夹在功能区菜单中,单

Outlook提供了许多设置和功能,可帮助您更有效地管理工作。其中之一是排序选项,可让您根据需要对电子邮件进行分类。在这个教程中,我们将学习如何利用Outlook的排序功能,根据发件人、主题、日期、类别或大小等条件对电子邮件进行整理。这将让您更轻松地处理和查找重要信息,提高工作效率。MicrosoftOutlook是一个功能强大的应用程序,可以方便地集中管理您的电子邮件和日历安排。您可以轻松地发送、接收和组织电子邮件,而内置的日历功能也让您能够方便地跟踪您即将面临的活动和约会。如何在Outloo

使用Python实现XML数据的筛选和排序引言:XML是一种常用的数据交换格式,它以标签和属性的形式存储数据。在处理XML数据时,我们经常需要对数据进行筛选和排序。Python提供了许多有用的工具和库来处理XML数据,本文将介绍如何使用Python实现XML数据的筛选和排序。读取XML文件在开始之前,我们需要先读取XML文件。Python有许多XML处理库,

PHP开发:如何实现表格数据排序和分页功能在进行Web开发中,处理大量数据是一项常见的任务。对于需要展示大量数据的表格,通常需要实现数据排序和分页功能,以提供良好的用户体验和优化系统性能。本文将介绍如何使用PHP实现表格数据的排序和分页功能,并给出具体的代码示例。排序功能实现在表格中实现排序功能,可以让用户根据不同的字段进行升序或降序排序。以下是一个实现表格

字幕在你的WindowsPC上不能在Stremio上运行吗?一些Stremio用户报告说,视频中没有显示字幕。许多用户报告说遇到了一条错误消息,上面写着“加载字幕时出错”。以下是与此错误一起显示的完整错误消息:加载字幕时出错加载字幕失败:这可能是您正在使用的插件或您的网络有问题。正如错误消息所说,可能是您的互联网连接导致了错误。因此,请检查您的网络连接,并确保您的互联网工作正常。除此之外,这个错误的背后可能还有其他原因,包括字幕加载项冲突、特定视频内容不支持字幕以及Stremio应用程序过时。如

Java中的Arrays.sort()方法如何按照自定义比较器对数组进行排序?在Java中,Arrays.sort()方法是一个非常有用的方法,可以对数组进行排序。默认情况下,该方法会按照升序排序。但是有时候,我们需要按照自己定义的规则对数组进行排序。这时,就需要用到自定义比较器(Comparator)。自定义比较器是一个实现了Comparator接口的类,

在这个问题中,一个字符串被作为输入,我们必须按字典顺序对字符串中出现的单词进行排序。为此,我们为字符串中的每个单词(之间用空格区分)分配一个从1开始的索引,并以排序索引的形式获得输出。String={“Hello”,“World”}“Hello”=1“World”=2由于输入字符串中的单词已按字典顺序排列,因此输出将打印为“12”。让我们看看一些输入/结果场景-假设输入字符串中的所有单词都相同,让我们看看结果-Input:{“hello”,“hello”,“hello”}Result:3获得的结

在我们的工作中,经常会用到wps软件,wps软件处理数据的方式方法是非常多的,而且函数功能也是非常强大的,我们经常用函数来求平均值,求汇总等,可以说只要是统计数据能用的方法,wps软件库里都已经为大家准备好了,下面我们要介绍的是wps怎么排序成绩高低的操作步骤,看完以后大家可以借鉴一下经验。1、首先打开需要排名的表格。如下图所示。 2、然后输入公式=rank(B2,B2:B5,0),一定要输入0。如下图所示。 3、输入完公式以后,按下电脑键盘上的F4键,这步操作是为了让相对引用变为绝对引用。
