Compruebe la cadena Palindrome en C#

Muhammad Maisam Abbas 16 febrero 2024
  1. Verifique la cadena Palindrome con el método String.Substring() en C#
  2. Verifique la cadena Palindrome con el método LINQ en C#
Compruebe la cadena Palindrome en C#

Este tutorial presentará los métodos para verificar si una cadena es palíndromo o no en C#.

Verifique la cadena Palindrome con el método String.Substring() en C#

Una cadena se considera palíndromo si se lee de la misma manera hacia adelante y hacia atrás. Desafortunadamente, no existe un método integrado para verificar si una cadena es un palíndromo o no en C#. Pero podemos usar el método String.Substring() para dividir la cadena de la mitad para obtener la primera mitad. Podemos obtener el reverso de la segunda mitad convirtiendo la cadena en un array de caracteres, invirtiendo la secuencia de caracteres con el método Array.Reverse(), convirtiendo el array inversa en una cadena y luego dividiendo la nueva cadena de el medio con el método String.Substring(). Si la primera mitad es igual al reverso de la segunda mitad, la cuerda es un palíndromo. Si la primera mitad no es igual a la segunda mitad, la cuerda no es un palíndromo. El siguiente ejemplo de código nos muestra cómo podemos verificar si una cadena es un palíndromo o no con el método String.Substring() en C#.

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);
    }
  }
}

Producción :

True

En el código anterior, verificamos si la cadena 12321 es un palíndromo o no con el método String.Substring() en C#.

Verifique la cadena Palindrome con el método LINQ en C#

El método SequenceEqual() dentro de LINQ compara dos secuencias de elementos en C#. El método Reverse() dentro de LINQ invierte los elementos de una secuencia en C#. Podemos usar el método Reverse() para invertir nuestra cadena y compararla con la cadena original usando el método SequenceEqual(). El siguiente ejemplo de código nos muestra cómo podemos verificar si una cadena es un palíndromo o no con el método LINQ en C#.

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);
    }
  }
}

Producción :

True

En el código anterior, verificamos si la cadena 12321 es un palíndromo o no con los métodos SequenceEqual() y Reverse() en C#. Se prefiere este enfoque al enfoque anterior porque es más simple.

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

Artículo relacionado - Csharp String