我正在尋找關於作業分配的一些快速提示。我們遇到了一些問題,並且必須編寫兩個關於如何通過迭代和遞歸分別解決問題的快速程序。我相信這比我想象的要容易,但是我對這兩者很容易感到困惑。我絕不希望任何人爲我完全解決問題,我不會學到任何東西!但如果你能看看我目前爲止的情況,並告訴我是否正朝着正確的方向前進。此外,代碼不需要編譯,我們的教授希望我們對迭代與遞歸的差異有一個大致的瞭解。C++編程迭代和遞歸
問題:檢查字符串以查看它是否是迴文。
我的解決方案 - 我認爲這是迭代求解:
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;
}
}
}
}
我提醒大家的是,我非常新的這個東西。我已經閱讀了一些東西,但是我仍然很難把這個東西包裹起來。
line =「0」是一項任務而不是比較。此外,返回後的代碼根本不會執行。 – imreal
你被要求使用堆棧嗎?你比這更難以做到。 – Duck
不一定非要使用堆棧,但是我們的教授花了很多時間來討論它們,在看了講義和幻燈片之後,有點兒來找我。來自其他用戶的評論,似乎你是對的! – supersix3