Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: DuckDNS e a Evolução dos Clientes para Atualização Dinâmica de DNS: Uma Análise do Cliente em Harbour como Alternativa ao Java

_Créditos das imagens: [JozefJarosciak](https://github.com/JozefJarosciak/DuckDNSClient/blob/master/DuckDNSClient/src/logo.png) **DuckDNS e a Evolução dos Clientes para Atualização Dinâmica de DNS: Uma Análise do Cliente em Harbour como Alternativa ao Java** --- ### **Introdução ao DuckDNS: Simplificando o DNS Dinâmico** O DuckDNS é um serviço gratuito de DNS dinâmico que permite associar subdomínios (como `meudominio.duckdns.org`) a um IP dinâmico, ideal para usuários que desejam acessar dispositivos domésticos (como servidores, câmeras IP ou NAS) remotamente, mesmo sem um IP fixo. Sua simplicidade e integração com tecnologias como Let's Encrypt para certificados SSL o tornam popular em projetos de automação e hospedagem pessoal. --- ### **O Cliente Java Tradicional: Características e Limitações** O cliente Java desenvolvido por JozefJarosciak (disponível [aqui](https://raw.githubusercontent.com/JozefJarosciak/DuckDNSClient/refs/heads/master/DuckDNSClient/src/duckdns...

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