Paridad - Recursion java

Tengo el problema del verificador de paridad: una cadena binaria es una cadena que contiene solo caracteres '0' y '1'. La paridad de una cadena binaria se define de la siguiente manera. Si el número de veces que aparece el carácter '1' en esta cadena es par, la paridad es 0; si es impar, la paridad es 1. Por ejemplo, la paridad de "101" es 0, la paridad de "10110" es 1 y la paridad de "001001101" es 0. Escriba una función, utilizando la firma

public static int parity(String binaryStr)
//no changes are allowed & only use recursive solution, no loops allowed

Logré escribirlo iterativamente, sin embargo, mi recursión está fuera de outOfboundries:

  public static int parity(String binaryStr) {
    int counter = 0;
    for (int i = 0; i < binaryStr.length () ; i++) {
        if (binaryStr.charAt (i) == 49) {
            counter++;
        }
    }
    if ( counter % 2 == 0 ) {
        return 0;
    }
    else {
        return 1;
    }
}

recursivo:

private static int index = 0;
private static int ans = 0;

private static int parity(String binaryStr) {
    if ( index == binaryStr.length ()-1 ) {
        if ( ans % 2 == 0 ) {
            return 0;
        }
        else {
            return 1;
        }
    }
    else if ( binaryStr.charAt (index) == '1' ) {
        ans++;
        return parity (binaryStr.substring (index++));
    }
    return  parity (binaryStr.substring (index++));
}

por favor ayúdame a corregirlo

Respuesta 1

En mi aplicación, estoy tratando de reproducir un archivo de sonido en formato ogg, almacenado en una carpeta sin formato en el directorio res de mi aplicación. Cuando presiono el botón que llama a la siguiente función, simplemente se congela con ...

La clase Applet ha quedado en desuso, pero los tutoriales en línea para crear applets de Java amplían la clase Applet. ¿Hay una manera diferente de crear un applet sin usar la clase obsoleta?

Cuando ejecuto una prueba con Robotium, utilizo una aserción para verificar que hay texto específico en la página, pero falla. Sin embargo, cuando ejecuto la prueba sin la afirmación, la prueba pasa. ¿Por qué esto ...

Encontré este código de ejemplo para el libro de Joshua Bloch, Effective Java. Está destinado a demostrar por qué debe evitar crear objetos innecesariamente: import java.util.regex.Pattern; // Reutilizando caro ...