Таким образом, даны два объекта стека, которые вначале не содержат значения:
Stack stOne, stTwo;
Предполагается, что вы реализовали ::size(), ::push(), ::pop()
, где pop возвращает значение, хранящееся в верхней части стека, для вашего стека.объекты, вы хотите поместить все символы данной строки в stOne
.Тогда вам придется выдавать stOne
на stOne.size()/2
количество раз и вставлять символы в stTwo
:
void solvePalindrome(std::string str){
for(int i=0; i<str.size(); i++){
stOne.push(str[i]);
}
for(int i=0; i<stOne.size()/2; i++){
stTwo.push(stOne.pop());
}
//do your comparison here
}
В качестве альтернативы, вы можете напрямую использовать str.size () / 2 вместо stOne.size () / 2, если вы еще не реализовали ::size()
.
Примечание. Если в строке есть неравномерное количество символов, она будет округляться (этаж) stOne.size () / 2.Весь код в CPP.