【C++算法】66.栈_比较含退格的字符串
文章目录
- 题目链接:
- 题目描述:
- 解法
- C++ 算法代码:
题目链接:
844. 比较含退格的字符串
题目描述:
解法
用字符串来模拟栈。
C++ 算法代码:
class Solution
{
public:bool backspaceCompare(string s, string t) {// 比较两个经过退格处理后的字符串是否相等// 基本思路:分别处理两个字符串,然后比较处理结果return changeStr(s) == changeStr(t);}string changeStr(string& s){// 处理含有退格符('#')的字符串// 基本思路:使用字符串模拟栈结构,遇到'#'时删除前一个字符string ret; // 用于存储处理结果的字符串,同时作为栈结构// 遍历输入字符串中的每个字符for(char ch : s){if(ch != '#') ret += ch; // 如果不是退格符,则将字符加入结果字符串else {// 如果是退格符('#')且结果字符串非空,则删除最后一个字符if(ret.size()) ret.pop_back();// 注意:如果结果字符串为空,则退格符不起作用}}return ret; // 返回处理后的字符串}
};