我正在寻找一些关于家庭作业的快速提示。我们遇到了一些问题,必须编写两个快速程序来说明如何用迭代和递归中的一个来解决这些问题。我敢肯定这比我想象的要容易,但是我很容易对这两者感到困惑。我不希望任何人为我完全解决问题,我不会学到任何东西!但是,如果你能看看我到目前为止所拥有的,让我知道我是否朝着正确的方向前进。此外,代码不需要编译,我们的教授希望我们对迭代与递归的区别有一个大致的了解。
问题:检查一个字符串是否为回文。
我的解决方案-我认为这是迭代解决方案:
bool iterative_palindrome (const string& str) {
string line, result;
stack <char> stack_input;
//user enters string, program takes it
cout << "Enter string: " << endl;
while (getline (cin, line) && (line != "")) {
//push string into stack
for (size_t i = 0; i < line.size(); i++) {
stack_input.push(line[i]);
//create reverse of original string
while (!stack_input.empty()) {
result += stack_input.top();
stack_input.pop();
return result;
}
//check for palindrome, empty string
if (line == result || line = "0" || line.empty()) {
return true;
cout << line << " is a palindrome!" << endl;
} else {
return false;
cout << line << " is NOT a palindrome." << endl;
cout << "Enter new string: " << endl;
}
}
}
}
我提醒大家,我对这个东西很陌生。我已经读过一些东西,但我仍然很难理解这一点。