首页
学习
活动
专区
圈层
工具
发布

栈与队列——1047. 删除字符串中的所有相邻重复项

1 题目描述 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。...2 题目示例 输入:“abbaca” 输出:“ca” 解释: 例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。...之后我们得到字符串 “aaca”,其中又只有 “aa” 可以执行重复项删除操作,所以最后的字符串为 “ca”。...4 思路 充分理解题意后,我们可以发现,当字符串中同时有多组相邻重复项时,我们无论是先删除哪一个,都不会影响最终的结果。因此我们可以从左向右顺次处理该字符串。...而消除—对相邻重复项可能会导致新的相邻重复项出现,如从字符串abba 中删除bb会导致出现新的相邻重复项aa出现。因此我们需要保存当前还未被删除的字符。一种显而易见的数据结构呼之欲出:栈。

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    LeetCode 26:删除有序数组中的重复项

    一、题目描述 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。...在每次遍历过程中,比较 i 和 j 指向的元素值大小,把大的元素填充到 cur 的位置,填充完毕说明那个元素已经放置在它应该放置的位置,不需要在管它了,把 cur 向前移动,同时把 i 或者 j 向前移动...// 从有序数组 nums1 最末端的位置开始保存元素 int cur = nums1.length - 1; // 通过循环把 num2 的元素都移动到 num1 中...while( j >= 0 ){ // 比较 num1 和 num2 中当前的元素大小 // 如果 num1 中的索引位置为 i 的元素大于...i 的元素小于或者等于 num2 中索引位置为 j 的元素 }else{ // 把 num2 中的索引位置为 j 的元素复制到索引为

    4.9K20

    Linux系统中删除目录软链接的注意项

    对于软链接的操作在Linux系统中还是较为常见,相当于是Windows系统中的快捷方式,平时经常会用它来做些类似mv命令重命名的操作,让些烦乱的文件管理更加的清晰些,比如源文件目录或文件名称太过冗余,可通过创建软链接进行简化...,再重新创建新的软链接,但由于习惯于使用Tab快捷键操作,结果把源目录的下的内容给删除,原因就是Tab快捷键时会在目录名称后面自动加上\符号,导致“不知不觉”中就把目录下的文件清空,而非所预想的只是删除软链接...-f:强制执行,如果软链接已存在,不论目标是否存在,都删除旧的软链接并重新创建。 在您的例子中,使用 ln -snf src tar 命令时,以下是命令执行的逻辑: tar 软链接已经存在。...-n 选项检查 tar 指向的目标(在这个例子中是 src 目录)是否存在,并且是否为非目录。在这里 src 是目录,所以 -n 选项不会阻止命令执行。 -f 选项强制删除已存在的 tar 软链接。...确保您有足够的权限在该目录下创建和删除文件。 如果您在脚本中使用该命令,请确保脚本没有语法错误,并且命令被正确调用。

    1.2K00
    领券