Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: A Arte (e Desafio) de Dialogar com a IA: Mais Inteligência, Menos "Burrice"?

_Créditos das imagens: ChatGPT (DALL·E) ** A Arte (e Desafio) de Dialogar com a IA: Mais Inteligência, Menos "Burrice"? Recentemente, me deparei com um exemplo fascinante da capacidade das IAs generativas: um prompt detalhado que resultou na criação de um jogo 3D de labirinto com um soldado (você pode ver a versão em português do prompt/projeto aqui: [naldodj-3DMazeGameWithSoldier](https://raw.githubusercontent.com/naldodj/naldodj-3DMazeGameWithSoldier/refs/heads/main/README.md), baseado no original de [@nobody_qwert no X](https://x.com/nobody_qwert/status/1893584330095509843)). O resultado é impressionante, mas o que realmente me chamou a atenção foi a **complexidade e o detalhamento do prompt** necessário para chegar lá. Isso ilustra perfeitamente um ponto crucial: fazer a IA gerar *exatamente* o que queremos, seja código complexo ou texto coeso e específico, não é trivial. Exige clareza, precisão, antecipação de ambiguidades e, muitas vezes, várias iterações. É a chamad...

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