Duvidas exercicio recursividade?

Escrever um método recursiva que determine a quantas vezes um determinado caracter aparecer em uma String?

Quando for pensar em recursividade, comece pensando no caso base. Qual é a situação mais simples que você pode se deparar? Uma String de tamanho 0, certo? Nesse caso, a contagem com certeza é 0. Assim, você pode fazer (pseudocodigo):

contarOcorrencias(char letra, String texto):
    if texto.tamanho == 0:
        return 0;
    else
        primeiraLetra = texto[0]
        int count = primeiraLetra == letra ? 1 : 0
        return count + contarOcorrencias(letra, texto.substringAPartirDoIndice(1))
2 curtidas

Explicação:

Basicamente, é uma função ou método que chama a si mesmo até satisfazer uma condição, no seu caso você deve varrer esse texto até a sua última posição.

Olha como é simples:

public static int countLetter(char letter, String texto)
{
        if (texto.length() == 0) return 0;
        if (texto.charAt(0) == letter) 
            return 1 + countLetter(letter, texto.substring(1));
        return countLetter(letter, texto.substring(1));
}

Exemplo IDEONE

1 curtida

vlw mano mimk ajudou bastante

vlw kra mim ajudou bastante