#
Prática
Vamos praticar os conceitos que aprendemos até agora, com alguns exercícios de LeetCode. As soluções desses problemas não são as ótimas, elas estão aqui mais com o intuito de praticar a sintaxe da linguagem Go e as estruturas.
#
9. Palindrome Number
Dado um número inteiro x
, retornar true
se x
é um palíndromo inteiro. Link para o problema: LeetCode - 9
x := 121
// Converte o número para string
number_as_string := strconv.Itoa(x)
// Pegamos o tamanho da string
length := len(number_as_string)
// Fazemos um for para percorrer a string, mas somente até a metade
for i := 0; i < length/2; i++ {
// Pegamos o caracter da posição i
left := number_as_string[i]
// Pegamos o caracter da posição length - i - 1
// length - i - 1 é a posição do caracter oposto ao da posição i
// Exemplo: se i for 0, então length - i - 1 será o último caracter
// Lembre que o índice começa em 0, então o último caracter é length - 1
right := number_as_string[length-i-1]
// Se os caracteres forem diferentes, então não é um palíndromo
if left != right {
println("Não é um palíndromo")
}
}
println("É um palíndromo")
Nesse código, a mensagem “É um palíndromo” sempre será impressa, pois o código não faz nada quando os caracteres são diferentes. No leetcode iremos retornar um valor booleano, ao invés de imprimir uma mensagem. O legal do LeetCode é que mostra o tempo de execução e o uso de memória da sua solução e compara com outras soluções.