C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で文字列が回文(パリンドローム)かどうかを判定する方法

回文判定の基本の手順

文字列が回文(前から読んでも後ろから読んでも同じになる文字列)かどうかを確認するには、まず Array.Reverse() メソッドを使って文字列を反転させます。

その後、Equals() メソッドを使って元の文字列と反転後の文字列を比較します。比較結果が true であれば、その文字列は回文であると判断できます。

処理の流れ

  1. ToCharArray() メソッドで文字列を文字型(char)の配列に変換します。
  2. Array.Reverse() メソッドで配列の要素の順序を反転させます。
  3. new string() で反転済みの配列から新しい文字列を生成します。
  4. Equals() メソッドで元の文字列と反転後の文字列を比較し、結果を判定します。

サンプルコード

それでは、完全なサンプルコードを見てみましょう。ここでは「Malayalam」という文字列を使用します。この文字列は反転しても同じ並びになるため、回文の典型的な例です。

using System;
namespace palindromecheck {
    class Program {
        static void Main(string[] args) {
            string string1, rev;
            string1 = "Malayalam";
            char[] ch = string1.ToCharArray();
            Array.Reverse(ch);
            rev = new string(ch);
            bool b = string1.Equals(rev, StringComparison.OrdinalIgnoreCase);
            if (b == true) {
                Console.WriteLine("" + string1 + " is a Palindrome!");
            } else {
                Console.WriteLine(" " + string1 + " is not a Palindrome!");
            }
            Console.Read();
        }
    }
}

ポイントとして、Equals() メソッドに StringComparison.OrdinalIgnoreCase を指定することで、大文字と小文字を区別せずに比較できます。これにより、「malayalam」のように大文字小文字が混在する場合でも正しく回文として判定されます。

実行結果

Malayalam is a Palindrome!
  1. C言語で配列が回文かどうかを判定するプログラム

    回文とは任意のサイズ n の配列 arr[] が与えられたとき、その配列が回文(パリンドローム)かどうかを判定するのが本記事の目的です。回文とは、前から読んでも後ろから読んでも同じになる並びのことで、MADAM や NAMAN といった文字列が代表的な例として挙げられます。配列が回文かどうかを確認するには、配列を先頭からと末尾から同時に走査し、対応する要素同士を比較していきます。入力例と出力例Input: arr[] = {1, 0, 0, 1} Output: 配列は回文です Input: arr[] = {1, 2, 3, 4, 5} Output: 配列は回文ではありません考え方(アプ

  2. 指定された文字列がキーワードであるかどうかを確認するPythonプログラム

    この記事では、指定された文字列がPythonのキーワード(予約語)であるかどうかを判定する方法について解説します。問題の概要与えられた文字列が、Pythonにおけるキーワードであるかどうかを確認する必要があります。キーワードとは、言語によって特別な用途のために予約されている単語であり、変数名や関数名などの識別子として使用することはできません。例えば「if」「for」「while」「def」などはすべてキーワードです。これらの名前を変数に使おうとすると、構文エラーが発生します。解決策:keywordモジュールの活用Pythonには標準ライブラリとしてkeywordモジュールが用意されており、これ