在今天的文章中,我们将深入探讨与C++中字符串操作相关的一个独特问题。这个问题是“在给定字符串中,字母表达式被打乱的数字。” 这个问题可以作为一个很好的练习,来提高你在C++中的字符串操作和数据结构技能。
问题陈述
给定一个字符串,任务是识别其中字母表达方式被打乱的数字。例如,如果输入字符串是"oentow",它有一个数字2(t, w, o)和数字1(o, n, e)的字母表达方式被打乱。
C++解决方案方法
为了解决这个问题,我们将在C++中使用哈希表或无序映射来存储字符串中字母的频率。然后,我们将将此频率映射与每个数字的字母表示的预定义映射进行比较。如果一个数字的表示可以从输入字符串中形成,我们将输出该数字。
Example
的中文翻译为:示例
这是解决问题的C++代码 −
#include <iostream> #include <unordered_map> #include <vector> // Array of digit representations std::string digitRepresentations[10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; std::unordered_map<char, int> generateFrequencyMap(std::string str) { std::unordered_map<char, int> freqMap; for (char c : str) { freqMap[c]++; } return freqMap; } std::vector<int> findJumbledDigits(std::string str) { std::unordered_map<char, int> strFreqMap = generateFrequencyMap(str); std::vector<int> digits; for (int i = 0; i < 10; i++) { std::unordered_map<char, int> digitFreqMap = generateFrequencyMap(digitRepresentations[i]); bool canFormDigit = true; for (auto pair : digitFreqMap) { if (strFreqMap[pair.first] < pair.second) { canFormDigit = false; break; } } if (canFormDigit) { digits.push_back(i); } } return digits; } int main() { std::string input = "oentow"; std::vector<int> digits = findJumbledDigits(input); std::cout << "The jumbled digits in the string are: "; for (int digit : digits) { std::cout << digit << " "; } return 0; }
输出
The jumbled digits in the string are: 1 2
Explanation with a Test Case
的翻译为:使用测试案例解释
让我们考虑字符串"oentow"。
当这个字符串被传递给findJumbledDigits函数时,它首先为字符串生成一个频率映射:{'o': 2, 'e': 1, 'n': 1, 't': 1, 'w': 1}。
然后,对于从0到9的每个数字,它生成数字的字母表示的频率映射,并检查该映射是否可以从字符串的频率映射中形成。
数字1的表示形式“one”具有频率映射 {'o': 1, 'n': 1, 'e': 1},而数字2的表示形式“two”具有频率映射 {'t': 1, 'w': 1, 'o': 1}。
这两个可以由字符串的频率映射生成,所以我们将这些数字添加到结果中。
最后,它输出结果:"The jumbled digits in the string are: 1 2"。
结论
这个问题展示了我们如何使用频率映射来解决C++中的复杂字符串操作问题。这是一个很好的问题,可以练习你的字符串和数据结构处理技巧。继续练习这样的问题,提升你的C++编码能力。
以上是给定一个字符串,其中字母的表示方式被打乱的数字的详细内容。更多信息请关注PHP中文网其他相关文章!

php将16进制字符串转为数字的方法:1、使用hexdec()函数,语法“hexdec(十六进制字符串)”;2、使用base_convert()函数,语法“bindec(十六进制字符串, 16, 10)”。

待机是一种锁定屏幕模式,当iPhone插入充电器并以水平(或横向)方向定位时激活。它由三个不同的屏幕组成,其中一个是全屏时间显示。继续阅读以了解如何更改时钟的样式。StandBy的第三个屏幕显示各种主题的时间和日期,您可以垂直滑动。某些主题还会显示其他信息,例如温度或下一个闹钟。如果您按住任何时钟,则可以在不同的主题之间切换,包括数字、模拟、世界、太阳能和浮动。Float以可自定义的颜色以大气泡数字显示时间,Solar具有更多标准字体,具有不同颜色的太阳耀斑设计,而World则通过突出显示世界地

笔记本电脑打不出1-9数字是设置问题导致的,其解决办法:1、按下“win+r”打开运行输入cmd并回车;2、在命令提示符界面,输入osk并回车;3、点击虚拟键盘上的“选项”,并勾选“打开数字小键盘”;4、启动“numlock键”即可。

生成随机数或字母数字字符串的能力在许多情况下都会派上用场。您可以使用它在游戏中的不同位置生成敌人或食物。您还可以使用它向用户建议随机密码或创建文件名来保存文件。我写了一篇关于如何在PHP中生成随机字母数字字符串的教程。我在这篇文章的开头说,几乎没有事件是真正随机的,同样的情况也适用于随机数或字符串生成。在本教程中,我将向您展示如何在JavaScript中生成伪随机字母数字字符串。在JavaScript中生成随机数让我们从生成随机数开始。我想到的第一个方法是Math.random(),它返回一个浮

在任何语言中编写程序时,将数字表示为输出是一项有趣且重要的任务。对于整数类型(short、long或medium类型的数据),很容易将数字表示为输出。对于浮点数(float或double类型),有时我们需要将其四舍五入到特定的小数位数。例如,如果我们想将52.24568表示为三位小数,需要进行一些预处理。在本文中,我们将介绍几种技术,通过四舍五入将浮点数表示为特定的小数位数。在不同的方法中,使用类似C的格式化字符串、使用精度参数以及使用数学库中的round()函数是很重要的。让我们逐个来看。带有

我们都知道不是任何数字的平方的数字,如2、3、5、7、8等。非平方数有N个,不可能知道每个数字。因此,在本文中,我们将解释有关无平方数或非平方数的所有内容,以及在C++中查找第N个非平方数的方法。第N个非平方数如果一个数是整数的平方,则该数被称为完全平方数。完全平方数的一些例子是-1issquareof14issquareof29issquareof316issquareof425issquareof5如果一个数不是任何整数的平方,则该数被称为非平方数。例如,前15个非平方数是-2,3,5,6,

在PHP编程语言中,is_numeric()函数是一种非常常用的函数,用于判断一个变量或值是否为数字。在实际编程中,经常需要对用户输入的数值进行验证,判断其是否为数字类型,这时就可以使用is_numeric()函数进行判断。一、is_numeric()函数简介is_numeric()函数是一个用于检测变量或值是否为数字的函数。如果变量或值为数字,则返回tru

Java中的数字重要的是要理解数字类不是一个有形的类,而是一个抽象的类。在它内部,我们有一组定义其功能的包装类。这些包装类包括Integer、Byte、Double、Short、Float和Long。您可能会注意到,这些与我们之前讨论的基本数据类型相同,但它们表示为具有大写名称的单独类,以符合类命名约定。根据特定函数或程序范围的要求,编译器自动将原始数据类型转换为对象,反之亦然,并且数字类是java.lang包的一部分。此过程称为自动装箱和拆箱。通过掌握数字类及其对应的包装类的抽象性质,我们可以


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

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

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver CS6
视觉化网页开发工具

WebStorm Mac版
好用的JavaScript开发工具