P1101 Matriz cuadrada de palabras

Enlace del título: P1101
esta pregunta (⊙o⊙) ..., Konjac dijo que no se escribirá por búsqueda, no se escribe, por lo que la violencia directa
se conoce a partir de la pregunta, tenemos 8 direcciones, y todas las 8 direcciones que cumplen con las condiciones deben ser emitidas. Solo porque puede usar la posición repetida, si usa la búsqueda, tiene que encontrar una manera de resolver este problema, no voy a utilizar el
método:
solo necesitamos encontrar el primer carácter, es decir, y después de encontrarlo, atravesamos su 8 visto en la dirección el personaje no se satisface secuencia Yizhong, encontrado, después se graban en
el código

import java.util.*;
public class Main {
	static int n;
	static char a[][];
	static boolean b[][];
	static char key[] = new String("yizhong").toCharArray();
	static int xx[] = new int[]{-1,-1,-1,0,0,1,1,1};
	static int yy[] = new int[]{-1,0,1,-1,1,-1,0,1};
	static void check(int x,int y){
		for(int i = 0;i < 8;i++){
			int j = 0;
			int p = x;
			int q = y;
			for(j = 1;j < 7;j++){
				if(p+xx[i]>=0 && p+xx[i]<n && q+yy[i]>=0 && q+yy[i]<n && (a[p+xx[i]][q+yy[i]] == key[j])){
					p = p+xx[i];
					q = q+yy[i];
				}
				else
					break;
			}
			if(j == 7){
				for(int k = 0;k < 7;k++){
					b[p][q] = true;
					p = p-xx[i];
					q = q-yy[i];
				}
			}
		}
	}
	public static void main(String args[]){
		Scanner sc = new Scanner(System.in);
		n = sc.nextInt();
		a = new char[n][n];
		b = new boolean[n][n];
		for(int i = 0;i < n;i++)
			for(int j = 0;j < n;j++)
				b[i][j] = false;
		for(int i = 0;i < n;i++)
			a[i] = sc.next().toCharArray();
		for(int i = 0;i < n;i++)
			for(int j = 0;j < n;j++)
				if(a[i][j] == 'y')
					check(i,j);
		for(int i = 0;i < n;i++){
			for(int j = 0;j < n;j++){
				if(b[i][j])
					System.out.print(a[i][j]);
				else
					System.out.print("*");
			}
			System.out.println();
		}
	}
}

32 artículos originales publicados · elogiados 5 · visitas 862

Supongo que te gusta

Origin blog.csdn.net/shizhuba/article/details/104289288
Recomendado
Clasificación