LeetCode题目:比较含退格的字符串
作者:互联网
LeetCode题目:比较含退格的字符串
给定 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”。
#include<iostream>
#include<stack>
#include<vector>
using namespace std;
class Solution {
public:
bool backspaceCompare(string S, string T) {
const char ch = '#';
stack<char> stk1, stk2;
for (int i = 0; i < S.length(); i++)
{
if (S[i] != ch)
{
stk1.push(S[i]);
}
else{
if (!stk1.empty())
stk1.pop();
}
}
for (int i = 0; i < T.length(); i++)
{
if (T[i] != ch)
{
stk2.push(T[i]);
}
else {
if (!stk2.empty())
stk2.pop();
}
}
if (stk1.size() != stk2.size())
return false;
while(!stk1.empty())
{
if( stk1.top() != stk2.top())
return false;
stk1.pop();
stk2.pop();
}
return true;
}
};
int main()
{
Solution solution;
string S = "a#c", T = "b";
bool ans = solution.backspaceCompare(S, T);
cout << ans << endl;
return 0;
}
标签:示例,pop,stk1,stk2,字符串,true,LeetCode,退格 来源: https://blog.csdn.net/Up_junior/article/details/94590642