宿題の簡単なヒントを探しています。いくつかの問題が与えられ、反復と再帰をそれぞれ 1 つずつ使用して問題を解決する方法について、2 つの簡単なプログラムを作成する必要があります。これは思ったより簡単だと思いますが、この 2 つについて簡単に混乱してしまいます。誰かに問題を完全に解決してもらいたくありません。何も学びません。しかし、私がこれまでに得たものを見て、私が正しい方向に向かっているかどうかを教えていただければ. また、コードをコンパイルする必要はありません。私たちの教授は、反復と再帰の違いについての一般的な考え方を知りたいと考えています。
問題: 文字列が回文かどうかを調べます。
私の解決策-それは反復的な解決策だと思います:
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;
}
}
}
}
私は皆に思い出させます、私はこのことにはかなり慣れていません。私はすでにいくつかのことを読みましたが、これについて頭を悩ますのにまだ苦労しています.