Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: LeetCode :: Comparando Implementações Harbour e TLPP para o Desafio Longest Palindromic Substring

_Créditos das imagens: ChatGPT_ ### LeetCode :: Comparando Implementações Harbour e TLPP para o Desafio Longest Palindromic Substring Resolver o problema do [Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring/description/) é um exercício clássico de programação, que desafia desenvolvedores a encontrar a maior substring palindrômica dentro de uma string. Recentemente, exploramos soluções tanto em Harbour quanto em TLPP (Total Language Protheus Programming). Neste artigo, comparamos as implementações nessas duas linguagens, destacando suas semelhanças, diferenças e funcionalidades específicas. #### Implementações em Harbour ##### Versão 5.1 Essa solução utiliza a técnica de expansão a partir do centro do palíndromo. Cada caractere ou par de caracteres consecutivos é considerado um possível "centro". O algoritmo expande em ambas as direções enquanto os caracteres forem iguais, retornando o maior palíndromo encontrado. ##### Versão 5....

BlackTDN :: LeetCode :: Solução do Problema "Add Two Numbers" em x(Base)Harbour/TLPP



_Créditos das imagens: ChatGPT_

# LeetCode :: Solução do Problema "Add Two Numbers" em x(Base)Harbour/TLPP

O problema [**Add Two Numbers**](https://leetcode.com/problems/add-two-numbers/) do LeetCode desafia os desenvolvedores a somar dois números representados por listas ligadas, onde cada nó contém um único dígito armazenado em ordem inversa. A solução deve retornar a soma como uma nova lista ligada, também em ordem inversa.

Neste artigo, exploramos uma solução implementada em **x(Base)Harbour/TLPP**, uma linguagem baseada no xBase. A abordagem apresentada também pode ser facilmente adaptada para linguagens derivadas do xBase, como **AdvPL/TLPP**.

---

## Resumo do Problema

### Exemplo 1:
- **Entrada:** `l1 = [2,4,3]`, `l2 = [5,6,4]`  
- **Saída:** `[7,0,8]`  
- **Explicação:** 342 + 465 = 807.

### Exemplo 2:
- **Entrada:** `l1 = [0]`, `l2 = [0]`  
- **Saída:** `[0]`

### Exemplo 3:
- **Entrada:** `l1 = [9,9,9,9,9,9,9]`, `l2 = [9,9,9,9]`  
- **Saída:** `[8,9,9,9,0,0,0,1]`

**Restrições:**
- O número de nós em cada lista está no intervalo `[1, 100]`.
- Cada nó contém um único dígito no intervalo `[0, 9]`.
- Os números não possuem zeros à esquerda, exceto o número 0.

---

## Implementação em x(Base)Harbour/TLPP

A solução está disponível no repositório GitHub:  
👉 [**add_two_numbers.2.2.prg**](https://github.com/naldodj/naldodj-xbase-leetcode-solutions/blob/main/src/hb/002/add_two_numbers.2.2.prg)

### Estrutura do Código

#### Função Principal (`Main`)
A função principal executa testes com diferentes entradas para validar a solução.

#### Função `addTwoNumbers`
A função realiza a soma de dois números representados como arrays de dígitos.

---

## Adaptação para AdvPL/TLPP

Dada a similaridade do x(Base)Harbour/TLPP com AdvPL/TLPP, esta solução pode ser utilizada com **poucas alterações** nessas linguagens. Funções como `hb_JSONEncode` podem ser substituídas por métodos equivalentes em AdvPL, e estruturas de controle são quase idênticas.

### Exemplos de Alterações Necessárias
1. Substituir `hb_JSONEncode` por uma função customizada ou equivalente para formatar os resultados.
2. Garantir que o comportamento de arrays e funções de manipulação sejam compatíveis com o runtime AdvPL/TLPP.

---

## Exemplo de Uso

```x(Base)Harbour/TLPP
? "Sum: [2,4,3]+[5,6,4] => ", hb_JSONEncode(addTwoNumbers({2,4,3}, {5,6,4}))
// Saída: [7,0,8]
```

Este exemplo demonstra como os números são representados em arrays, manipulados e retornados de forma eficiente.

---

## Conclusão

A implementação em x(Base)Harbour/TLPP é uma solução clara e eficiente para o problema "Add Two Numbers". A flexibilidade da linguagem facilita a manipulação de estruturas como arrays, permitindo que problemas algorítmicos clássicos sejam resolvidos de maneira prática.

Além disso, a compatibilidade com **AdvPL/TLPP** abre novas possibilidades para programadores que trabalham com linguagens derivadas do xBase em sistemas como o **TOTVS Protheus**.

---

## Hashtags

#xBaseHarbourTLPPLang #AdvPL #TLPP #LeetCodeSolutions #AddTwoNumbers #Algoritmos #Programação #EstruturasDeDados #DesenvolvimentoDeSoftware #xBaseSolutions

Comentários

Postagens mais visitadas