文章目录
- 1. 题目
- 2. 解题
1. 题目
描述
给出两个输入流 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"。
https://tianchi.aliyun.com/oj/456013639031220453/490558435244577687
2. 解题
class Solution {
public:/*** @param inputA: Input stream A* @param inputB: Input stream B* @return: The answer*/string inputStream(string &inputA, string &inputB) {// The answerstring 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阿明),一起加油、一起学习进步!