如果两个输入流相等,我如何构造main()以输出YES?

时间:2018-03-26 01:25:48

标签: c++ data-structures stack

我希望被告知如何使用我创建的函数输出main()函数以输出这个例子(下面)。我需要帮助创建要输出的main()函数,如下所示。非常感谢。

//Question: Given two input stream inputA and inputB, which should have 
//backspace. If the final result of the two input streams is equal, output YES, 
//otherwise output NO.
//Example:
//• inputA = "abcde<<", inputB = "abcd<e<", return
//• Explanation: The final result of inputA and inputB is  so return "YES"
//• inputA = "a<<bc", inputB = "abc<", return
//• Explanation: The final result of inputA is and the final result of inputB is 
// "ab", so return "NO"

#include <string>
#include <iostream>
#include <stack>
#include <cstring>

using namespace std;

bool input_stream(string inputA, string inputB);

int main()
{

}

bool input_stream(string inputA, string inputB)
{
   stack<char> stack1, stack2;
   string::iterator iter1, iter2;
   for (iter1 = inputA.begin(); iter1 < inputA.end(); ++iter1)
   {
      if(*iter1 == ‘<‘)
        if(!stack1.empty())
          stack1.pop();
      else
        stack1.push(*iter1);
   }
   for (iter2 = inputB.begin(); iter2 < inputB.end(); ++iter2)
   {
      if(*iter2 == ‘<‘)
        if (!stack2.empty())
          stack2.pop();
      else
        stack2.push(*iter2);
   }
   if (stack1 == stack2)
      return true;
   else
      return false;
}

1 个答案:

答案 0 :(得分:0)

假设您的input_stream()功能正常工作,编写main()功能很容易。

您的函数接受2个字符串 - 因此将2个字符串传递给您的函数,并使用if语句检查函数返回的值。然后使用cout将适当的结果写入屏幕。

您可以将结果存储在附加变量中,并在if语句的条件中检查 ,或者只使用函数调用本身作为条件,因为它返回{{1}已经。