C++ 中的原地字符串转换算法2024年8月28日 | 阅读 7 分钟 在本文中,我们将讨论 C++ 中字符串转换的就地算法,并提供几个示例。 在此算法中,将给定字符串中所有位于偶数位置的项移动到字符串的末尾。在移动它们时,保持所有位于偶数和奇数位置的元素的相对顺序不变。 例如,如果字符串是“a1b2c3d4e5f6g7h8i9j1k2l3m4”,则将其就地转换为“abcdefghijklm1234567891234”,时间复杂度为O(n)。 以下是步骤:删除形式为3k + 1的最大尺寸前缀子字符串。在此阶段,我们找到最大的非负数 k,使得 3k+1 小于或等于 n(字符串长度)。
示例让我们用一个例子来更好地理解它: 请注意,下面示例中使用的值包括 10、11 和 12。仅将这些值用作单个字符。为了提高可读性,使用了这些值。
合并第一个和第二个子字符串: 1. 第二个子字符串的前半部分和第一个子字符串的后半部分被反转。 2. 第二个子字符串的前半部分和第一个子字符串的后半部分,都反转后合并(它们合并了,所以现在只有三个子字符串)。 再次合并第一个和第二个子字符串: 1. 第二个子字符串的前半部分和第一个子字符串的后半部分被反转。 2. 第二个子字符串的前半部分和第一个子字符串的后半部分,都反转后合并(它们合并了,所以现在只有两个子字符串)。 连接第一个和第二个子字符串: 1. 第二个子字符串的前半部分和第一个子字符串的后半部分被反转。 2. 第二个子字符串的前半部分和第一个子字符串的后半部分,都反转后合并(它们现在是一个子字符串)。 根据上述算法,代码如下所示: 示例 1输出 oellHWrldo 示例:2让我们再举一个例子来说明 C++ 中字符串转换的就地算法。 输出 sihT si a elpmas ecnetnes ot esrever sdrow 重要提示
下一个主题C++ 乘积数组谜题程序 |
在 C++ 的广阔领域中,效率和表达能力是重中之重,某些功能常常是隐藏的宝石。标准模板库(STL)中的一个这样的宝石是 std::tie。在本文中,我们将讨论 std::tie,它是一个函数模板,并且具有巨大的...
阅读 3 分钟
回文数是指反转后仍然相同的数字。例如 121、34543、343、131、48984 是回文数。回文数算法 从用户获取数字 将数字保存在临时变量中 反转数字 将临时数字与反转后的数字进行比较 如果两个数字相同,则...
阅读1分钟
指针用于访问程序外部的资源,例如堆内存。因此,指针用于访问堆内存(如果在堆内存中创建了任何内容)。我们在访问外部资源时,只使用该资源的副本。我们只需更改...
阅读 4 分钟
在本文中,我们将讨论 C++ 中的稀疏数组及其示例。稀疏数组表示一种数据数组,其中许多元素包含零值。因此,在一个完整的数组中,大多数元素都包含非零值……
阅读 3 分钟
Bitap 算法,也称为 Shift-Or 算法,是一种字符串搜索算法,可高效地执行近似字符串匹配。当模式中可能存在错误或变体时,它在文本中查找模式特别有用。位图算法由...介绍
阅读 3 分钟
排序算法简介 在数据为王的计算机科学领域,排序技能至关重要。作为数字世界的无名英雄,排序算法在后台默默地将混乱转化为秩序。它们对于计算机科学的许多方面都至关重要,...
阅读 10 分钟
本节将讨论在 C++ 编程语言中比较给定字符串的不同方法。字符串的比较决定第一个字符串是否等于另一个字符串。示例:HELLO 和 Hello 是两个不同的字符串。有不同的方法来……
5 分钟阅读
编译器在运行时可以解析的绑定称为静态绑定。例如,所有 final、static 和 private 方法都在运行时绑定。所有重载方法都使用静态绑定进行绑定。动态绑定的概念解决了这些问题...
阅读 3 分钟
C++ 中的智能指针 C++ 编程语言中的智能指针是标准库 (<memory>) 中提供的类模板,它们自动管理动态分配的内存。它们充当原始指针的包装器,但具有底层内存管理功能。这些指针...
阅读9分钟
摘要:在本文中,我们将学习 . seekg() 函数允许在 iostream 库中访问任何文件位置。它是文件处理的一部分,可以在 fstream 头文件中找到。它用于从输入流中提取...。
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India