Leetcode——844.比较含退格的字符串——题解+代码实现(使用vector的push_back和pop_back)
程序员文章站
2022-03-22 21:22:41
...
一、题目
给定 S
和 T
两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 #
代表退格字符。
示例 1:
输入:S = "ab#c", T = "ad#c" 输出:true 解释:S 和 T 都会变成 “ac”。
示例 2:
输入:S = "ab##", T = "c#d#" 输出:true 解释:S 和 T 都会变成 “”。
示例 3:
输入:S = "a##c", T = "#a#c" 输出:true 解释:S 和 T 都会变成 “c”。
示例 4:
输入:S = "a#c", T = "b" 输出:false 解释:S 会变成 “c”,但 T 仍然是 “b”。
提示:
1 <= S.length <= 200
1 <= T.length <= 200
-
S
和T
只含有小写字母以及字符'#'
。
二、题解思路
- 题解思路:针对每个字符串进行如下处理然后进行比较:建立一个vector存取处理后的结果,如果遇到非#,则将字母存(push_back())到vector中,如果遇到#,此时vector非空,则删除vector中的最后一个元素。
三、代码实现
- C++代码实现
{
public:
bool backspaceCompare(string S, string T)
{
if(backspace(S)==backspace(T))
return true;
return false;
}
vector<char> backspace(string K) //处理函数
{
vector<char> nums;
for(auto c:K) //遍历字符串
{
if(!nums.empty() && c == '#')
nums.pop_back();
else if(c != '#')
nums.push_back(c);
}
return nums;
}
};
上一篇: session共享多节点部署之redis