Para inverter uma string, percorra-a com um loop e troque os caracteres das extremidades até o meio.

Passo 1

Beleza, a gente quer inverter uma string (tipo “olá” vira “ál o”). Isso entra no campo de algoritmos e manipulação de strings. Para resolver isso a gente vai precisar entender que uma string é só um array de caracteres, usar um loop pra percorrer do começo ao fim e trocar, com uma variável temporária, o caractere da ponta esquerda pelo da ponta direita até chegar no meio.

Passo 2

Antes de codar, sacou a teoria?
  • Se a string tem comprimento temp = s[i], s[i] = s[n-1-i], s[n-1-i] = temp , os índices vão de até .
  • A ideia é percorrer de até .
  • Em cada passo, a gente troca
Isso garante que o primeiro vai pro último, o segundo pro penúltimo, e por aí vai, até cruzar o meio.

Passo 3

Vamos montar um pseudo-código beeem de boa:
função inverterString(s):
    n ← tamanho de s                // n = |s|
    i ← 0
    enquanto i < n/2 faça:          // ou i ≤ (n-1)/2
        j ← n - 1 - i
        temp ← s[i]
        s[i] ← s[j]
        s[j] ← temp
        i ← i + 1
    retorne s

Passo 4

Exemplo prático com s = “abCde”:
  • n = 5
  • Iteração 1: i=0, j=4
    temp=‘a’, troca ‘a’↔’e’ → s = “ebCda”
  • Iteração 2: i=1, j=3
    temp=‘b’, troca ‘b’↔’d’ → s = “edCba”
  • Como agora i=2 e 2 ≥ 5/2, a gente para. O resultado é “edCba”.

Resposta

O algoritmo acima inverte qualquer string usando um loop que troca caracteres das extremidades até o meio.

Exercícios relacionados