Verifique a string do Palíndromo em C#

Muhammad Maisam Abbas 16 fevereiro 2024
  1. Verifique a string do Palindrome com o método String.Substring() em C#
  2. Verifique a string do Palíndromo com o método LINQ em C#
Verifique a string do Palíndromo em C#

Este tutorial irá apresentar os métodos para verificar se uma string é palíndromo ou não em C#.

Verifique a string do Palindrome com o método String.Substring() em C#

Uma string é considerada palíndromo se for lida da mesma forma para a frente e para trás. Infelizmente, não existe um método integrado para verificar se uma string é um palíndromo ou não em C#. Mas podemos usar o método String.Substring() para separar a string do meio para obter a primeira metade. Podemos obter o reverso da segunda metade convertendo a string em um array de caracteres, revertendo a sequência de caracteres com o método Array.Reverse(), convertendo a matriz reversa em uma string e, em seguida, dividindo a nova string de o meio com o método String.Substring(). Se a primeira metade for igual ao reverso da segunda metade, a corda é um palíndromo. Se a primeira metade não for igual à segunda metade, a corda não é um palíndromo. O exemplo de código a seguir nos mostra como podemos verificar se uma string é um palíndromo ou não com o método String.Substring() em 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);
    }
  }
}

Resultado:

True

No código acima, verificamos se a string 12321 é um palíndromo ou não com o método String.Substring() em C#.

Verifique a string do Palíndromo com o método LINQ em C#

O SequenceEqual() método dentro do LINQ compara duas sequências de elementos em C#. O método Reverse() dentro do LINQ inverte os elementos de uma seqüência em C#. Podemos usar o método Reverse() para inverter nossa string e compará-la com a string original usando o método SequenceEqual(). O exemplo de código a seguir nos mostra como podemos verificar se uma string é um palíndromo ou não com o método LINQ em 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);
    }
  }
}

Resultado:

True

No código acima, verificamos se a string 12321 é um palíndromo ou não com os métodos SequenceEqual() e Reverse() em C#. Essa abordagem é preferível à abordagem anterior porque é mais simples.

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

Artigo relacionado - Csharp String