Java - Ayuda para poder encontrar elementos seguidos de una matriz de carácteres.

 
Vista:

Ayuda para poder encontrar elementos seguidos de una matriz de carácteres.

Publicado por Gustavo (1 intervención) el 20/11/2019 23:12:16
Buenas tardes, el motivo de este tema es para ver si pueden lograr identificar cuál es el error en mi código, desde ya muchísimas gracias.

El objetivo es que de una matriz de 6 x 6 poder encontrar caracteres parecidos (4 como mínimo y como máximo también) los cuáles deben ir uno seguido del otro y la búsqueda de los mismos debe ser en forma HORIZONTAL.

Por si no he me expresado bien, lo que se busca es encontrar solamente 4 caracteres seguidos e iguales, si no son 4 el programa por así decirlo no funcionaría (no sirven 1,2,4,5 o 6 caracteres iguales seguidos)

Este es mi código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class Ejemplo {
public static void main(String[] args) {
    int cont1 = 0;
 
    char matriz[][] =
    {   {'A','A','C','D','A','A'}, // Error -> 4 elementos 'A' horizontales pero no seguidos.
        {'A','B','C','D','E','1'},
        {'A','B','C','D','E','1'},
        {'E','E','E','E','D','E'},
        {'A','B','C','D','E','1'},
        {'A','B','D','D','D','D'}};
 
 
    for (int i = 0; i < matriz.length; i++) {
        System.out.println("");
        for (int j=0; j<matriz[0].length; j++) {
            System.out.print(matriz[i][j] + " ");
        }
    }
        System.out.println("");
        System.out.println("");
 
 
for (int i = 0; i < matriz.length; i++) {
        for (int j = 0; j < matriz[0].length; j++) {
            for (int k = 0; k < matriz[0].length; k++) {
                if (matriz[i][j] == matriz[i][k]) {
                    cont1++;
                } // fin if
            }// fin for = k
 
            if(cont1 != 4) {
                cont1 = 0;
            } // fin if
 
            else {
                System.out.println("Se ha encontrado en la linea: "+(i+1)+", 4 coincidencias de letras iguales");
                break;
            }
        } // fin for = j
    } // fin for = i

Los problemas que he encuentro son:
* A la hora de ejecutar el "System.out.println" aclarándome donde se encuentran letras iguales, me reconoce las de la fila '0' a pesar de que los valores que son iguales no están seguidos.



Por favor, si pueden darme una mano les estaría totalmente agradecido!.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Leonardo
Val: 20
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda para poder encontrar elementos seguidos de una matriz de carácteres.

Publicado por Leonardo (4 intervenciones) el 22/11/2019 11:33:15
Prueba esto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int cont1 = 0;
int col = 0;
for (int i = 0; i < matriz.length; i++)
{
         cont1 = 0;
        for (int j = 0; j < matriz[i].length - 1; j++)
        {
                col = 0;
                if (matriz[i][j] == matriz[i][j+1])
                {
                    cont1++;
                    if(cont1 != 4)
                    {
                          System.out.println("Se ha encontrado 4 coincidencias: fila--> " + (i+1) + ", columna--> " + col);
                         cont1 = 0;
                    }
                }
                else
                {
                         col = j+1;
                }
        }
    }


PD: Está escrito al vuelo, sin comprobar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar