C++での回文判定プログラムの作成方法


  1. 方法1: 反転して比較する
    • 文字列を反転させ、反転前後の文字列が等しいかどうかを比較します。
#include <iostream>
#include <string>
#include <algorithm>
bool isPalindrome(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;
}
  1. 方法2: 両端からの比較
    • 文字列の両端から順に文字を比較し、対応する文字が異なる場合は回文ではありません。
#include <iostream>
#include <string>
bool isPalindrome(std::string str) {
    int length = str.length();
    for (int i = 0; i < length / 2; i++) {
        if (str[i] != str[length - 1 - i]) {
            return false;
        }
    }
    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++で回文判定プログラムを作成することができます。それぞれの方法には長所と短所がありますが、どちらの方法も正確に回文を判定することができます。