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 小时前
《算法每日一题(1)--- 第31场蓝桥算法挑战赛》
c语言·开发语言·c++·git·算法·学习方法
llz_1123 小时前
五子棋小游戏
开发语言·c++·算法
如竟没有火炬4 小时前
全排列——交换的思想
开发语言·数据结构·python·算法·leetcode·深度优先
寂静山林4 小时前
UVa 12526 Cellphone Typing
算法
静若繁花_jingjing5 小时前
面试_场景方案设计_联系
面试·职场和发展
kyle~5 小时前
C++---嵌套类型(Nested Types)封装与泛型的基石
开发语言·c++·算法
sali-tec5 小时前
C# 基于halcon的视觉工作流-章48-短路断路
开发语言·图像处理·人工智能·算法·计算机视觉
墨染点香5 小时前
LeetCode 刷题【128. 最长连续序列】
算法·leetcode·职场和发展