编写 Python 程序递归删除所有相邻重复项2024 年 8 月 29 日 | 4 分钟阅读 在本教程中,我们将编写Python程序来递归地删除所有相邻的重复元素。在此问题中,给定一个字符串,我们需要返回一个不包含任何相邻重复元素的输出字符串。让我们通过以下示例来理解。 示例 - 让我们理解下面的例子。 方法 - 1让我们理解下面的例子。 示例 - 输出 ay ac 解释 - 在上面的代码中,**remove_adjacent_duplicates()** 函数以字符串作为输入,并从中删除所有相邻的重复项。使用栈来存储非重复字符。我们遍历字符串中的每个字符。 如果栈不为空且当前字符与栈顶元素相同,则表示我们找到了一个重复字符。在这种情况下,我们使用pop()方法从栈中删除栈顶元素。如果当前字符不是重复字符,我们使用append()方法将其压入栈中。 遍历完所有字符后,我们使用''.join(stack)方法将栈转换为字符串并返回结果字符串。 最后,我们提供几个字符串,其中调用了**remove_adjacent_duplicates()** 函数,并打印输出。 方法 - 2让我们理解另一种方法。 示例 - 输出 mpie lop 解释 - remove_adjacent_duplicates()函数以字符串s和字符ch作为输入,并递归地从字符串中删除所有相邻的重复项。 如果字符串的长度小于或等于1,则函数原样返回字符串。 该函数使用while循环遍历字符串中的字符。如果两个相邻字符相同,则找到连续重复字符的范围。然后,函数使用重复字符之后的剩余部分递归地调用自身。 该函数从当前范围中删除连续重复项,并将重复项之后的剩余字符串追加到更新后的字符串中。 如果没有连续重复项,则函数移动到下一个字符。 最后,该函数返回已删除所有相邻重复项的更新后的字符串。 我们提供了两个测试用例,其中remove_adjacent_duplicates()函数使用不同的字符串和字符调用,并打印输出。 方法 - 4我们可以使用正则表达式来解决这个问题,并运行一个循环来查找长度大于1的字符。让我们通过以下示例来理解。 示例 - 输出 z 解释 - 在上面的代码中,remove()函数使用正则表达式来查找字符串s中连续重复字符的组。它使用re.finditer遍历找到的匹配项,并将它们存储在groups列表中。 然后,它检查每个组的长度,如果长度不大于1,则将其追加到字符串s中。rremove()函数在输入字符串s上重复调用remove函数,直到字符串s的长度保持不变。它在每次迭代之前更新ps以存储s的先前值。 最后,它返回删除所有相邻重复项后的结果字符串。 |
这篇文章将演示如何使用 PyQt5 开发一个火焰计算器。基于两个给定名字的算法,这个火焰计算器评估关系并预测它们可能的结果。最受欢迎和最有效的编程语言是 Python。Python 拥有一个强大的开发者社区...
阅读 10 分钟
有时在使用Python Shell时,我们得到杂乱无章的输出或编写了不必要的语句,我们希望出于其他原因清除屏幕。"cls"和"clear"命令用于清除终端(终端窗口)。如果您在IDLE中使用Shell,那么...
阅读 2 分钟
你不需要解密每一个字节来获取中间的某些信息。当使用 AES CTR 模式时,我们使用提供的加密密钥和 IV 生成一些随机位。我们用这些随机位与我们的字符串进行异或运算。这会生成一个文本...
阅读 6 分钟
本教程将学习RSME(均方根误差)及其在Python中的实现。让我们从它的简要介绍开始。简介 RSME(均方根误差)计算模型预测值与实际值之间的变换。换句话说,它是这样一种...
阅读 3 分钟
在本教程中,我们将讨论如何使用 uuid 模块在 Python 中生成 UUID。在深入探讨此主题之前,让我们了解 UUID 的基本概念。简介 UUID 是通用唯一标识符的缩写名称,也称为 GUID,即全局唯一标识符….
阅读 8 分钟
在本教程中,我们将讨论 Python 中 time 模块的 clock() 函数。我们还将看到 Python time clock() 方法的语法以及一些示例以便更好地理解。理解 Python 中的 time clock() 方法 clock() 方法是一个函数...
阅读 3 分钟
在本教程中,我们将了解字符串格式化机制。f-string 是格式化字符串的最佳方式。字符串的格式化样式使字符串更具可读性、更简洁且不易出错。它的速度也比其他方法快。在深入研究...
阅读 6 分钟
通配符是一个符号,可以替代或补充一个或多个字符。在计算机程序、语言、搜索引擎(包括操作系统)中,通配符用于简化搜索条件。问号 (?) 和星号 () 是...
阅读 3 分钟
?在本教程中,我们将看到如何编写代码来打印 Python 错误层次结构。但在开始之前,我们应该首先了解异常到底是什么?异常是指即使我们的代码在语法上是正确的也可能发生的错误。这些不是...
阅读 2 分钟
评估软件后,我们可以根据测试策略设置断言开或关。将断言与 raise-if 子句(或者更确切地说,raise-if-not 子句)进行比较是理解它的最简单方法。当测试一个短语时,如果……,则会触发异常。
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India