Design a function bool validateStackSequences(const std::vector& v) that takes an int vector with distinct values,
Posted: Tue Jul 12, 2022 8:21 am
Design a function bool validateStackSequences(conststd::vector<int>& v) that takes an int vector withdistinct values, and returns if values in v could be avalid sequence of stack operations
You may assume the input values are always{1, 2, 3, 4, 5}.
#include <vector>
#include <stack>
#include <iostream>
// TODO: implement this function
bool validateStackSequences(const std::vector<int>&v)
{
if (v.size() % 2 != 0)
return false;
std::stack<int> s;
int i = 0;
int j = v.size() - 1;
while (i <= j)
{
if (v == v[j])
{
i++;
j--;
}
else if (!s.empty() && s.top() == v[j])
{
s.pop();
j--;
}
else
{
s.push(v);
i++;
}
}
return s.empty();
}
int main(){
// use following code snippet for testing
// expected output:
// true
// false
// true
// false
// true
std::cout << std::boolalpha <<validateStackSequences({5, 4, 3, 2, 1}) << std::endl;
std::cout << std::boolalpha <<validateStackSequences({5, 4, 3, 1, 2}) << std::endl;
std::cout << std::boolalpha <<validateStackSequences({3, 2, 4, 1, 5}) << std::endl;
std::cout << std::boolalpha <<validateStackSequences({4, 2, 3, 1, 5}) << std::endl;
std::cout << std::boolalpha <<validateStackSequences({1, 2, 3, 4, 5}) << std::endl;
return 0;
}
PLEASE MAKE CHANGES IN THE ABOVE CODE.
You may assume the input values are always{1, 2, 3, 4, 5}.
#include <vector>
#include <stack>
#include <iostream>
// TODO: implement this function
bool validateStackSequences(const std::vector<int>&v)
{
if (v.size() % 2 != 0)
return false;
std::stack<int> s;
int i = 0;
int j = v.size() - 1;
while (i <= j)
{
if (v == v[j])
{
i++;
j--;
}
else if (!s.empty() && s.top() == v[j])
{
s.pop();
j--;
}
else
{
s.push(v);
i++;
}
}
return s.empty();
}
int main(){
// use following code snippet for testing
// expected output:
// true
// false
// true
// false
// true
std::cout << std::boolalpha <<validateStackSequences({5, 4, 3, 2, 1}) << std::endl;
std::cout << std::boolalpha <<validateStackSequences({5, 4, 3, 1, 2}) << std::endl;
std::cout << std::boolalpha <<validateStackSequences({3, 2, 4, 1, 5}) << std::endl;
std::cout << std::boolalpha <<validateStackSequences({4, 2, 3, 1, 5}) << std::endl;
std::cout << std::boolalpha <<validateStackSequences({1, 2, 3, 4, 5}) << std::endl;
return 0;
}
PLEASE MAKE CHANGES IN THE ABOVE CODE.