描述 给出两个输入流 inputA 和 inputB(包含退格符), 如果两个输入流最后的结果相等,输出 YES,否则输出 NO。
输入字符只包括小写字母和'<'。
输入流长度不超过10000。
示例
样例1
输入: inputA = "abcde<<" 和 inputB = "abcd<e<"
输出: "YES"
解释:
inputA和inputB最后的结果都为"abc",故返回"YES"。
样例2
输入: inputA = "a<<bc" 和 inputB = "abc<"
输出: "NO"
解释:
inputA最后的结果为"bc",inputB最后的结果为"ab",故返回"NO"。
class Solution {
public:
/**
* @param inputA: Input stream A
* @param inputB: Input stream B
* @return: The answer
*/
string inputStream(string &inputA, string &inputB) {
// The answer
string a = process(inputA);
string b = process(inputB);
return a == b ? "YES" : "NO";
}
string process(string& s)
{
int i = 0, j = 0;
for( ; j < s.size(); ++j)
{
if (s[j] == '<') // 退格键
{
if(i > 0) // 还有字符可删
i--;
}
else
{
s[i] = s[j];//把后面的字符移到前面
i++;
}
}
return s.substr(0,i); //返回整理后的字符
}
};
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!