823.输入流

描述

给出两个输入流inputAinputB,有Backspace,如果两个输入流最后的结果相等,输出YES,否则输出NO

  • 输入字符只包括小写字母和'<'
  • 输入流长度不超过10000
您在真实的面试中是否遇到过这个题?  

样例

给出 inputA = “abcde<<”, inputB = “abcd<e<”, 返回 “YES”

解释:
inputA和inputB最后的结果都为abc,故返回”YES”。

给出 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) {
        // Write your code here
        inputA=operate(inputA);
        inputB=operate(inputB);
        if(inputA==inputB) return "YES";
        else return "NO";
    }
    
    string operate(string& mstr){
        stack<char> mstack;
        for(int i=0;i<mstr.length();i++){
            if(mstr[i]=='<'){
                if(!mstack.empty())
                    mstack.pop();
            }
            else mstack.push(mstr[i]);
        }
        string result;
        while(!mstack.empty()){
            result=mstack.top()+result;
            mstack.pop();
        }
        return result;
    }
};

猜你喜欢

转载自blog.csdn.net/vestlee/article/details/80712493
今日推荐