[ Foro de Java ]

BuscarDiagonal(matriz java)

10-Sep-2022 21:50
Invitado (Juanse)
0 Respuestas

Buenas, necesito crear un codigo que genere una matriz y una palabra, y verifica si la palabra se encuentra en la matriz, puede estar de forma horizontal, vertical o en diagonal.
esto es lo que voy haciendo:

public static void main(String[] args) {
       
       Scanner in = new Scanner (System.in);
       char [][] mat =formarMatriz(in);
       String palabra = in.nextLine();
       Boolean validar = false;
       if (buscarHorizontal(mat,palabra)){
           validar = true;
           
       }
       if (buscarVertical(mat,palabra)){
           validar = true;
           
       }
       if (validar){
           System.out.println("SI");
       } else{
           System.out.println("NO");
       }
       
   }
   
   public static char[][] formarMatriz(Scanner in){
       int filas;
       int columnas;
       filas=in.nextInt();
       columnas=in.nextInt();
       in.nextLine();
       char[][] mat =new char [filas][columnas];
       for(char [] mat1 : mat){
           String dato =in.nextLine();
           for (int j=0;j< mat[0].length; j++){
               mat1[j]=dato.charAt(j);
           }
       }
       return mat;
   }
   public static Boolean buscarHorizontal (char [][] mat, String palabra){
       Boolean esta= false;
       int cantFilas= mat.length;
       int cantColumnas = mat[0].length;
       for (int i=0; i<cantFilas; i++){
           String str ="";
           for (int j=0; j<cantColumnas;j++){
               if (str.length() <= cantColumnas){
                   str += mat[i][j];
                   
               }
               if(str.contains(palabra)){
                   esta=true;
               }
           }
       } return esta;
   }
    public static Boolean buscarVertical (char [][] mat, String palabra){
       Boolean Esta= false;
       int cantFilas= mat.length;
       int cantColumnas = mat[0].length;
       for (int i=0; i<cantFilas; i++){
           String str ="";
           for (int j=0; j<cantColumnas;j++){
               if (str.length() <= cantColumnas){
                   str += mat[j][i];
                   
               }
               if(str.contains(palabra)){
                   Esta=true;
               }
           }
       } return Esta;
   }
   
Como puedo hacer el metodo que busca la matriz en diagonal? graciass




Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...