In: Computer Science
Write a function that uses a local char queue and a local char stack to determine if its string parameter is a palindrome. Your solution will look like:
#include <stack>
#include <queue>
...
bool isPalindrome(const string& candidate)
{
stack<char> s;
queue<char> q;
//add only upper case letters and digits to the stack and the queue
//if a letter is not upper case then convert it to upper case
}
Note: I need help to write out this problem in C++ while using Visual Studio 2017
#include<iostream>
#include<queue>
#include<stack>
#include <cctype>
using namespace std;
bool isPalindrome(const string& candidate)
{
stack<char> s;
queue<char> q;
//add only upper case letters and digits to the stack and the queue
//if a letter is not upper case then convert it to upper case
for(int i = 0;i<candidate.length();i++){
if(isupper(candidate[i]) || isdigit(candidate[i])){
s.push(candidate[i]);
q.push(candidate[i]);
}
else if(islower(candidate[i])){
s.push(toupper(candidate[i]));
q.push(toupper(candidate[i]));
}
}
while(!s.empty()){
if(s.top() != q.front()){
return false;
}
s.pop();
q.pop();
}
return true;
}
int main() {
//Testing isPalindrome function
cout<<isPalindrome("abcddcba")<<endl;
cout<<isPalindrome("abcdcba")<<endl;
cout<<isPalindrome("abdcba")<<endl;
return 0;
}

1 1 0
