Copa Blue Bridge: Matriz de letras (Notas) (Respuesta)

  ** El título de esta pregunta es demasiado largo, el título está detrás del código **

responder

  41

Precauciones

  1. Importante: El escáner reconoce un espacio y lo considera como la segunda entrada. Se necesita un bucle for para aceptar la entrada. Si se recibe solo una vez, solo se recibirá el contenido antes del primer espacio, como por ejemplo:
    Inserte la descripción de la imagen aquí

  2. Al juzgar personajes, el caso de o

Ideas para resolver problemas

  La fuerza bruta se agrieta en 8 direcciones. Después de romper una de las direcciones, las siete restantes se agrietan en secuencia utilizando el mismo método.

Código

import java.util.Scanner;

public class Main {
    
     //蓝桥杯要求class命名为Main,且无package
    public static void main(String []args){
    
    
        int length = 100; //定义该方阵的长
        char a[][] = new char[length][length];
        Scanner scanner = new Scanner(System.in);
        String str[]=new String[length];
        for(int i=0;i<length;i++){
    
    
            str[i] = scanner.next(); //*** 重点:scanner识别到空格会认为是第二次输入!!
        }
        for(int i=0;i<length;i++){
    
     //将字符串方阵转换为char方阵
            for(int j=0;j<length;j++){
    
    
                a[i][j] = str[i].charAt(j) ;
            }
        }

        int count =0;
        for(int i=0;i<length;i++){
    
     //开始暴力破解8种方向,想通第一种,后七种就是愉快的'搬砖'
            for(int j=0;j<length;j++){
    
    
                if(j<length-6) //1横向
                    if(a[i][j]=='L')
                        if(a[i][j+1]=='A')
                            if(a[i][j+2]=='N')
                                if(a[i][j+3]=='Q')
                                    if(a[i][j+4]=='I')
                                        if(a[i][j+5]=='A')
                                            if(a[i][j+6]=='O')
                                                count++;
                if(i<length-6) //2纵向
                    if(a[i][j]=='L')
                        if(a[i+1][j]=='A')
                            if(a[i+2][j]=='N')
                                if(a[i+3][j]=='Q')
                                    if(a[i+4][j]=='I')
                                        if(a[i+5][j]=='A')
                                            if(a[i+6][j]=='O')
                                                count++;
                if(j>=6) //3反横向
                    if(a[i][j]=='L')
                        if(a[i][j-1]=='A')
                            if(a[i][j-2]=='N')
                                if(a[i][j-3]=='Q')
                                    if(a[i][j-4]=='I')
                                        if(a[i][j-5]=='A')
                                            if(a[i][j-6]=='O')
                                                count++;
                if(i>=6) //4反纵向
                    if(a[i][j]=='L')
                        if(a[i-1][j]=='A')
                            if(a[i-2][j]=='N')
                                if(a[i-3][j]=='Q')
                                    if(a[i-4][j]=='I')
                                        if(a[i-5][j]=='A')
                                            if(a[i-6][j]=='O')
                                                count++;
                if(i<length-6&&j<length-6) //5斜右下
                    if(a[i][j]=='L')
                        if(a[i+1][j+1]=='A')
                            if(a[i+2][j+2]=='N')
                                if(a[i+3][j+3]=='Q')
                                    if(a[i+4][j+4]=='I')
                                        if(a[i+5][j+5]=='A')
                                            if(a[i+6][j+6]=='O')
                                                count++;
                if(i>=6&&j<length-6) //6斜右上
                    if(a[i][j]=='L')
                        if(a[i-1][j+1]=='A')
                            if(a[i-2][j+2]=='N')
                                if(a[i-3][j+3]=='Q')
                                    if(a[i-4][j+4]=='I')
                                        if(a[i-5][j+5]=='A')
                                            if(a[i-6][j+6]=='O')
                                                count++;
                if(i>=6&&j>=6) //7斜左上
                    if(a[i][j]=='L')
                        if(a[i-1][j-1]=='A')
                            if(a[i-2][j-2]=='N')
                                if(a[i-3][j-3]=='Q')
                                    if(a[i-4][j-4]=='I')
                                        if(a[i-5][j-5]=='A')
                                            if(a[i-6][j-6]=='O')
                                                count++;
                if(i<length-6&&j>=6) //8斜左下
                    if(a[i][j]=='L')
                        if(a[i+1][j-1]=='A')
                            if(a[i+2][j-2]=='N')
                                if(a[i+3][j-3]=='Q')
                                    if(a[i+4][j-4]=='I')
                                        if(a[i+5][j-5]=='A')
                                            if(a[i+6][j-6]=='O')
                                                count++;
            }
        }
        System.out.println(count);
        }
    }





~

tema

 Título: Letter Array
  Si observa con atención, encontrará que en la matriz cuadrada de 8x8 a continuación, hay una secuencia de letras ocultas: "LANQIAO". SLANQIAO ZOEXCCGB MOAYWKHI BCCIPLJQ SLANQIAO RSFWFNYA XIFZVWAL COAIQNAL Prometemos: La secuencia puede ser horizontal, vertical u oblicua; y la dirección es ilimitada (de hecho, hay un total de 8 direcciones). Hay un total de 4 cuerdas que cumplen con los requisitos de la imagen de arriba. Hay una matriz cuadrada de letras más grande (100x100) a continuación. ¿Puedes averiguar cuántos "LANQIAO" hay escondidos en él? FOAIQNALWIKEGNICJWAOSXDHTHZPOLGYELORAUHOHCZIERPTOOJUITQJCFNIYYQHSBEABBQZPNGYQTCLSKZFCYWDGOAIADKLSNGJ GSOZTQKCCSDWGUWAUOZKNILGVNLMCLXQVBJENIHIVLRPVVXXFTHQUXUAVZZOFFJHYLMGTLANQIAOQQILCDCJERJASNCTLYGRMHGF TSDFYTLVIBHKLJVVJUDMKGJZGNNSTPVLCKTOFMUEUFSVQIAUVHNVFTGBDDARPKYNNCUOYUAZXQJNOEEYKLFRMOEMHUKJTPETHLES FKVINSLWEVGAGMKVFVIUBMYOIAFHLVNKNTYKTZWVXQWRWIGPENFXYDTKRVPKRTHMGHVYOCLDCKMEKRLGEKBYUCLOLYPAKPFSOREH KWPUOLOVMOFBIXYACWRDYBINTMPASPCEOKHXQIGBQQMCEOIVULIEOPFSCSIHENAJCVDPJDOIWIIULFDNOZOFVAMCABVGKAKCOZMG XWMYRTAFGFOCNHLBGNGOXPJSTWLZUNNAGIRETGXFWAQSSJPFTQAXMTQWMZWYVEPQERKSWTSCHSQOOBGXAQTBCHOEGBDVKGWJIFTG ZWWJEIISPLMXIMGHOOGDRZFTGNDDWDWMNUFWJYJGULPHNUFSAQNNIUVAAFZIAZKFXXNWCEABGJAUMGYEIEFVQXVHHHEDYUITRCQB

Supongo que te gusta

Origin blog.csdn.net/qq_47168235/article/details/108903933
Recomendado
Clasificación