C#에서 회문 문자열 확인

Muhammad Maisam Abbas 2024년2월16일
  1. C#에서String.Substring()메서드를 사용하여 회문 문자열 확인
  2. C#에서 LINQ 메서드를 사용하여 회문 문자열 확인
C#에서 회문 문자열 확인

이 튜토리얼에서는 문자열이 C#에서 회문인지 확인하는 방법을 소개합니다.

C#에서String.Substring()메서드를 사용하여 회문 문자열 확인

문자열이 앞뒤로 동일하게 읽 히면 회문으로 간주됩니다. 불행히도 C#에서는 문자열이 회문인지 여부를 확인하는 기본 제공 방법이 없습니다. 그러나 String.Substring()메소드를 사용하여 문자열을 중간에서 분리하여 전반을 얻을 수 있습니다. 문자열을 문자 배열로 변환하고Array.Reverse()메서드를 사용하여 문자 시퀀스를 반전하고 반전 배열을 문자열로 변환 한 다음 새 문자열을 String.Substring()메소드를 사용하여 중간. 전반이 후반의 반대와 같으면 문자열은 회문입니다. 전반부가 후반과 같지 않으면 문자열은 회문이 아닙니다. 다음 코드 예제는 C#의String.Substring()메서드를 사용하여 문자열이 회문인지 여부를 확인하는 방법을 보여줍니다.

using System;
using System.Linq;

namespace palindrome {
  class Program {
    public static bool checkPalindrome(string mainString) {
      string firstHalf = mainString.Substring(0, mainString.Length / 2);
      char[] arr = mainString.ToCharArray();

      Array.Reverse(arr);

      string temp = new string(arr);
      string secondHalf = temp.Substring(0, temp.Length / 2);

      return firstHalf.Equals(secondHalf);
    }
    static void Main(string[] args) {
      bool palindrome = checkPalindrome("12321");
      Console.WriteLine(palindrome);
    }
  }
}

출력:

True

위 코드에서 C#의String.Substring()메소드를 사용하여 문자열12321이 회문인지 여부를 확인했습니다.

C#에서 LINQ 메서드를 사용하여 회문 문자열 확인

LINQ 내부의 SequenceEqual()메서드는 C#의 두 요소 시퀀스를 비교합니다. LINQ 내부의Reverse()메서드는 C#의 시퀀스 요소를 반전합니다. Reverse()메소드를 사용하여 문자열을 반전하고SequenceEqual()메소드를 사용하여 원래 문자열과 비교할 수 있습니다. 다음 코드 예제는 C#의 LINQ 메서드를 사용하여 문자열이 회문인지 여부를 확인하는 방법을 보여줍니다.

using System;
using System.Linq;

namespace palindrome {
  class Program {
    public static bool checkPalindrome2(string mainString) {
      return mainString.SequenceEqual(mainString.Reverse());
    }
    static void Main(string[] args) {
      bool palindrome = checkPalindrome2("12321");
      Console.WriteLine(palindrome);
    }
  }
}

출력:

True

위 코드에서 C#의SequenceEqual()Reverse()메소드를 사용하여12321문자열이 회문인지 여부를 확인했습니다. 이 접근 방식은 더 간단하기 때문에 이전 접근 방식보다 선호됩니다.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Csharp String