Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: LeetCode 23: Mesclando K Listas Ordenadas com Harbour/xBase e Reutilização de Código

_Créditos das imagens: ChatGPT **Título:** LeetCode 23: Mesclando K Listas Ordenadas com Harbour/xBase e Reutilização de Código **Introdução** Olá, entusiastas de Harbour/xBase e desafios de programação! Depois de explorarmos como mesclar duas listas ordenadas no [nosso post sobre o LeetCode 21](https://www.blacktdn.com.br/2025/03/blacktdn-leetcode-21-merge-two-sorted.html), vamos dar um passo adiante e enfrentar um problema um pouco mais complexo: o LeetCode 23 - Merge K Sorted Lists. Neste artigo, vamos desvendar uma implementação em Harbour/xBase para este desafio, demonstrando como podemos inteligentemente reutilizar a solução que já construímos para o problema 21. Veremos como a modularidade e a construção sobre soluções anteriores podem simplificar problemas mais complexos. **O Problema: LeetCode 23 - Merge K Sorted Lists** O desafio é o seguinte: dado um array (`aLists` em nossa implementação) contendo `k` listas encadeadas, onde cada lista já está ordenada em ordem cres...

BlackTDN :: LeetCode :: Resolvendo o Desafio "Palindrome Number" do LeetCode com XBase e TLPP

Créditos das imagens: ChatGPT

LeetCode :: Resolvendo o Desafio "Palindrome Number" do LeetCode com XBase e TLPP

No mundo da programação, os desafios do LeetCode são uma excelente maneira de aprimorar nossas habilidades de codificação.

Um desses é o desafio Palindrome Number (Número Palíndromo).

Neste artigo, vamos explorar como resolvemos esse desafio utilizando XBase e TLPP (linguagens que possuem um poderoso conjunto de ferramentas para o desenvolvimento de soluções rápidas e eficientes).

Descrição do Desafio

O problema Palindrome Number exige que verifiquemos se um número inteiro é um palíndromo. Ou seja, o número deve ser lido da mesma forma de trás para frente como é lido da frente para trás. Exemplos de números palíndromos incluem: 121, 12321, etc. Já números como 123, 10, e -121 não são palíndromos, pois sua leitura invertida não é igual ao número original.

A ideia é criar uma função que receba um número inteiro e retorne true se ele for um palíndromo, e false caso contrário.

Soluções Implementadas

Foram implementadas duas soluções para este desafio, utilizando a linguagem XBase (ou Harbour, que é uma implementação moderna do xBase). Vamos explorar ambas as soluções.

Primeira Implementação

palindrome_number.9.1.prg

A primeira implementação segue uma abordagem simples e direta. O algoritmo converte o número em uma string e compara os caracteres da string de frente para trás com os da string invertida. Caso as duas strings sejam iguais, o número é considerado um palíndromo. Caso contrário, não é.

Segunda Implementação

palindrome_number.9.2.prg

A segunda implementação adota uma abordagem sem a necessidade de converter o número para uma string, o que pode ser mais eficiente para grandes números, pois evita a sobrecarga de conversões de tipo. Ela utiliza operações matemáticas para reverter a segunda metade do número e compara essa metade com a primeira metade.

Comparação entre as Abordagens

  • Solução 1 (com string): Simples e fácil de entender, mas requer a conversão de número para string e a manipulação dessas strings, o que pode ser menos eficiente para números muito grandes.
  • Solução 2 (sem string): Mais eficiente em termos de memória e processamento, especialmente para números grandes, já que trabalha diretamente com os valores numéricos.

Conclusão

Ambas as abordagens são válidas, dependendo das necessidades do problema em questão. A primeira solução é mais intuitiva e fácil de implementar, sendo ideal para números menores ou quando a clareza do código é uma prioridade. A segunda solução, por outro lado, é mais eficiente e escalável, sendo uma boa escolha para números grandes ou quando a performance é crítica.

Espero que este artigo tenha ajudado a entender como abordar o problema de um número palíndromo de maneira eficiente. As soluções apresentadas aqui mostram como podemos usar XBase/Harbour para resolver problemas de forma simples e eficiente. Se você tiver algum comentário ou sugestão, não hesite em compartilhar nos comentários abaixo!


Implementação em TLPP

palindrome_number.9.1.tlpp
palindrome_number.9.2.tlpp

--

Hashtags:

#PalindromeNumber, #LeetCode, #XBase, #Harbour, #TPLL, #Programação, #DesafiosDeProgramação, #Algoritmos, #DesenvolvimentoDeSoluções, #LeetCodeSolutions, #DesenvolvimentoDeSoftware

Comentários

Postagens mais visitadas