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

C#で文字列が回文かどうかを確認するプログラムの作成方法


文字列が回文(パリンドローム)かどうかを確認するには、まず文字列を反転させる必要があります。これには Array.Reverse() メソッドを使用します。

Array.Reverse()

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

それでは、完全なサンプルコードを見てみましょう。ここでは「Madam」という文字列を使用します。「Madam」は、逆から読んでも同じ並びになる代表的な回文です。

サンプルコード

using System;
namespace Demo {
    class Program {
        static void Main(string[] args) {
            string string1, rev;
            string1 = "Madam";
            char[] ch = string1.ToCharArray();

            Array.Reverse(ch);
            rev = new string(ch);

            bool b = string1.Equals(rev, StringComparison.OrdinalIgnoreCase);
            if (b == true) {
                Console.WriteLine("String " + string1 + " is a Palindrome!");
            } else {
                Console.WriteLine("String " + string1 + " is not a Palindrome!");
            }
            Console.Read();
        }
    }
}

実行結果

String Madam is a Palindrome!

このように、ToCharArray() で文字列を文字配列に変換し、Array.Reverse() で反転させた後、Equals() メソッドに StringComparison.OrdinalIgnoreCase を指定することで、大文字と小文字の違いを無視して比較できます。これにより、「Madam」のように大文字小文字が混在していても正しく回文判定が可能になります。

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

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

  2. 【Python】2つの文字列を共通の位置で分割して回文を作れるか判定するプログラム

    問題の概要同じ長さの2つの文字列 S と T が与えられたとき、両方の文字列を共通の位置で切断し、S の前半部分と T の後半部分をつなぎ合わせて回文(前から読んでも後ろから読んでも同じになる文字列)を作ることができるかどうかを判定します。例えば、入力が S = cat、T = dac の場合、出力は True になります。文字列を「c」+「at」と「d」+「ac」に分割すると、「c」+「ac」(つまり cac)が回文になるためです。アルゴリズムの手順この問題を解くためには、以下の手順に従います。n := 文字列 a の長さi := 0i < n かつ a[i] が b[n-i-1] と