Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#으로 문자열이 회문(Palindrome)인지 확인하는 방법

회문(Palindrome)이란 앞에서 읽으나 뒤에서 읽으나 같은 문자열을 의미합니다. 예를 들어 "Malayalam", "level", "racecar" 같은 단어들이 대표적인 회문입니다.

회문 판별의 기본 원리

C#에서 문자열이 회문인지 확인하려면 다음 두 단계를 거칩니다.

1단계: Array.Reverse() 메서드를 사용해 원본 문자열을 뒤집습니다.

Array.Reverse()

2단계: Equals() 메서드로 원본 문자열과 뒤집은 문자열을 비교합니다. 비교 결과가 true라면 해당 문자열은 회문입니다.

전체 예제 코드

아래는 완성된 예제입니다. 여기서 사용한 문자열은 "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();
        }
    }
}

코드 설명

ToCharArray() 메서드로 문자열을 문자 배열(char[])로 변환한 뒤, Array.Reverse()로 배열의 순서를 반전시킵니다. 이후 반전된 배열을 다시 문자열로 만들어 원본과 비교합니다.

비교 시 StringComparison.OrdinalIgnoreCase 옵션을 사용하면 대소문자를 구분하지 않고 비교할 수 있어, "Malayalam"처럼 대소문자가 섞인 문자열도 정확하게 판별할 수 있습니다.

실행 결과

Malayalam is a Palindrome!

실행 결과 "Malayalam"이 회문임을 확인할 수 있습니다. 만약 회문이 아닌 문자열(예: "hello")을 입력했다면 "is not a Palindrome!"이라는 메시지가 출력됩니다.