PI-ITBA / 2024_02

Consultas 2C 2024
4 stars 0 forks source link

Ej Palindromo (ej1 p 2c 2023 #58

Open agustinadeferrari opened 1 month ago

agustinadeferrari commented 1 month ago

Hola, quería saber si era correcta la siguiente resolución. Gracias!!

int palindromo (char m[][COLS], int fila){
    int i;
    for (i=0; i<COLS/2; i++){
        if (m[fila][i] != m[fila][cols-i-1]){
            return 0;
        }
    }

    return 1;
}

int elimina (char m[][COLS], int fila){
    int aux, i, j;
    for (i=0; i<fila; i++){
        if (!palindromo(m, i)){
            for (j=0; j<COLS; j++){
                m[aux][i]=m[i][j];
            }
            aux++;

        }
    }

    return aux;
}
marcelogarberoglio commented 1 month ago

En principo está bien la lógica, están mal los índices en m[aux][i]=m[i][j];

debería ser m[aux][j]=m[i][j];

pero en este caso como eliminamos filas y no elementos mejor tener en cuenta el caso si aux e i sean el mismo., o sea

if ( aux != i ) for (j=0; j<COLS; j++){ m[aux][i]=m[i][j]; }

y palíndromo solo usa una fila entonces habría que pasarle la fila, o sea un vector