captura disponible] [coche Leetcode (una pregunta por día)

enlace del tema: disponible coche de captura


Significado de las preguntas: en el tablero de un 8 x 8, hay un coche blanco (torre). También puede ser caja disponible, elefante blanco (obispo) y el peón negro (peón). Se les da el carácter "R", "",y 'p'. Los caracteres en mayúscula indican blanca, se representan los caracteres en minúsculas negras.

El coche se mueve en la regla de ajedrez: elegir una de las cuatro direcciones básicas (Norte, Este, Oeste y Sur), y luego se mueven en esa dirección hasta que se elija a tope, o llegan al borde del tablero para mover a la misma plaza captura y muerte de los cuadrados de colores opuestos. Además, el coche no puede ser amigable con el otro (blanco) al igual que en la misma caja.

Devuelve el número de la muerte en un coche para ser capaz de captar el movimiento.


Solución: es comprender el significado del título. . Explicar que, encontrar la ubicación del coche, encontrará la muerte tan lejos de la ubicación actual a la rodea. Golpear como a parada.

Con muy violentos métodos. .


código:

1  de clase de soluciones {
 2  públicas :
 3      int numRookCaptures (vector <vector < Char >> y de mesa) {
 4          int posx, ramillete;
5          int cnt = 0 ;
6          para ( int i = 0 ; i < 8 ; i ++ ) {
 7              para ( int j = 0 ; j < 8 ; j ++ ) {
 8                  si (tablero [i] [j] == ' R ' ) {
 9                     posx = i;
10                      ramillete = j;
11                      descanso ;
12                  }
 13              }
 14          }
 15  
16          // 
17          para ( int i = posx- 1 ; i> = 0 ; i-- ) {
 18              si (tablero [i] [ramillete] == ' ' ) siguen ;   // 空方块19 más si (tablero [i] [ramillete] == ' B ' )
              PAUSA ; // imagen 
20 es              la más  IF (Board [I] [POSY] == ' P ' ) {        // Muerte 
21 es                  CNT = + 1. ;
 22 es                  PAUSA ;
 23 es              }
 24          }
 25          // caso 
26 es          para ( int I = POSX + 1. ; I < . 8 ; I ++ ) {
 27              IF (Board [I] [POSY] == ' ' ) Continuar ;    // cuadrados vacíos 28
             más  si (tablero [i] [ramillete] == ' B ' ) descanso ; // 
29              más  si (tablero [i] [ramillete] == ' p ' ) {        // 
30                  cnt + = 1 ;
31                  descanso ;
32              }
 33          }
 34          // 
35          para ( int i = posy- 1 ; i> = 0 ; i-- ) {
 36              si (tablero [posx] [i] == '. ' ) Continuar ;    // cuadrados vacíos 
37 [              el otro  IF (Board [POSX] [I] == ' B ' ) PAUSA ; // imagen 
38 es              la más  IF (Board [POSX] [I] == ' P ' ) {        / / muerte 
39                  CNT + = 1. ;
 40                  PAUSA ;
 41 es              }
 42 es          }
 43 es          // derecho 
44 es          para ( int I = POSY + 1. ; I <. 8 ; I ++ ) {
 45              IF (Board [POSX] [I] == ' ' ) Continuar ;    // cuadrados vacíos 46 es la más IF (Board [POSX] [I] == ' B ' ) PAUSA ; // como 47 el otro IF (Board [POSX] [I] == ' P ' ) {        // muerte 48                  CNT + = 1. ;
 49 PAUSA ;
 50             }
 51 es         }
 52 es vuelta
              
              
                            cnt;
53      }
 54 };

 

Supongo que te gusta

Origin www.cnblogs.com/Asumi/p/12578479.html
Recomendado
Clasificación