-
反転して比較する方法: この方法では、与えられた文字列を反転させて元の文字列と比較します。もし反転させた文字列と元の文字列が一致していれば、回文であると判断できます。
#include <iostream> #include <string> #include <algorithm> bool isPalindrome(const std::string& str) { std::string reversed = str; std::reverse(reversed.begin(), reversed.end()); return str == reversed; } int main() { std::string input; std::cout << "文字列を入力してください: "; std::cin >> input; if (isPalindrome(input)) { std::cout << "回文です" << std::endl; } else { std::cout << "回文ではありません" << std::endl; } return 0; }
-
反対側から比較する方法: この方法では、文字列の前と後ろから同じ位置の文字を比較します。もし一致しない文字があれば、回文ではありません。
#include <iostream> #include <string> bool isPalindrome(const std::string& str) { int start = 0; int end = str.length() - 1; while (start < end) { if (str[start] != str[end]) { return false; } start++; end--; } return true; } int main() { std::string input; std::cout << "文字列を入力してください: "; std::cin >> input; if (isPalindrome(input)) { std::cout << "回文です" << std::endl; } else { std::cout << "回文ではありません" << std::endl; } return 0; }
これらはいくつかの基本的な回文チェックの方法ですが、他にもさまざまなアルゴリズムやテクニックがあります。また、大文字と小文字を区別しない場合や、空白や句読点を無視する場合など、特定の要件に合わせてカスタマイズすることもできます。
以上のコード例を参考にして、C++で回文をチェックするための基本的なアルゴリズムを理解し、必要に応じてカスタマイズしてください。