leetcode 844 比较含退格的字符串

一、题目描述

二、解题思路

整体思路

可以使用字符串模拟栈来解决这个问题。本题方法与下面的一题完全一样,可以延伸练习一下。leetcode 1047 删除字符串中的所有相邻重复项-CSDN博客

具体思路

address函数用于还原并返回执行完所有退格操作的字符串。我们使用字符串ret来模拟栈结构。

循环遍历s:

(1)如果ret不为空且ch为'#',表示需要执行退格操作,我们将数组末尾的字符弹出;

(2)如果ch不为'#',就将字符串ch追加到ret的后面;

循环完成后,ret即为我们需要的字符串,返回ret即可。

三、代码实现

cpp 复制代码
class Solution {
public:
    bool backspaceCompare(string s, string t) {
        return address(s)==address(t);
    }

    string address(string s){
        string ret;
        for(auto ch:s){
            if(!ret.empty()&&ch=='#') ret.pop_back();
            else if(ch!='#')  ret.push_back(ch);
        }
        return ret;
    }
};
相关推荐
曾几何时`3 分钟前
347. 前 K 个高频元素 分别使用sort和priority_queue 对哈希结构自定义排序
算法
小李小李快乐不已10 分钟前
图论理论基础(3)
数据结构·c++·算法·图论
牙牙要健康11 分钟前
【open3d】示例:自动计算点人脸点云模型面部朝向算法
人工智能·python·算法
youngee1112 分钟前
hot100-41二叉搜索树中第K小的元素
算法
mmz12071 小时前
双指针问题5(c++)
c++·算法
星空露珠1 小时前
lua获取随机颜色rgb转换hex
数据结构·数据库·算法·游戏·lua
mit6.8241 小时前
预hash|vector<int> dfs
算法
Zsy_0510031 小时前
【数据结构】堆简单介绍、C语言实现堆和堆排序
c语言·数据结构·算法
Rock_yzh1 小时前
LeetCode算法刷题——56. 合并区间
数据结构·c++·学习·算法·leetcode·职场和发展·动态规划
普贤莲花1 小时前
小米面试总结20251202
面试·职场和发展