0920度小满笔试,记录自己的脑抽
两道编程,一道ac,一道0,
第一道
import java.util.Scanner; public class D1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str1 = sc.nextLine(); String str2 = sc.nextLine(); //需要的颜料 StringBuffer str = new StringBuffer(str1); //有的颜料 int count = 0; for (int i = 0;i<str2.length();i++){ int tag = str.indexOf(Character.toString(str2.charAt(i))); if(tag>=0){ count++; str.delete(tag,tag+1); } } System.out.println(count); } }第二道,脑抽了,居然把条件判断里的一个或写成了与,笔试时找了10多分钟没找到
出来在代码里插了很多sout才发现,希望自己以后不会犯这种低级错误了
import java.util.PriorityQueue; import java.util.Scanner; public class D2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String st = sc.nextLine(); int t = Integer.parseInt(st); for (int i = 0; i < t; i++) { String str = sc.nextLine(); String[] strs = str.split(" "); int n =Integer.parseInt(strs[0]); //行数 int m =Integer.parseInt(strs[1]); //列数 char[][] board = new char[n][m]; int x = -1; int y = -1; for (int j = 0; j < n; j++) { String s = sc.nextLine(); for (int k = 0; k < m; k++) { board[j][k]=s.charAt(k); if (board[j][k] == '@') { x = k; //列号 y = j; //行号 } } } boolean[][] used = new boolean[n][m]; int[][] move = new int[4][2]; move[0][0]=0; move[0][1]=1; move[1][0]=0; move[1][1]=-1; move[2][0]=1; move[2][1]=0; move[3][0]=-1; move[3][1]=0; PriorityQueue<Integer> list = new PriorityQueue<>(); //System.out.println(t +" "+n+ " "+m+" "+x+" "+y ); dis(x,y,board,used,list,0,move); if(list.size()>0){ System.out.println(list.poll()); }else{ System.out.println("-1"); } } } public static void dis(int x,int y,char[][] board,boolean[][] used, PriorityQueue<Integer> list,int count,int[][] move){ if(x<=0||x>=board[0].length-1||y<=0||y>=board.length-1){ //第3个或写成了与 //System.out.println(count); list.add(count); return; } for (int i = 0; i < 4; i++) { x=x+move[i][0]; y=y+move[i][1]; if(x>=0&&x<board[0].length&&y>=0&&y<board.length&&!used[y][x]){ used[y][x] = true; if (board[y][x]=='*'){ dis(x,y,board,used,list,count+1,move); // System.out.println(count); }else if (board[y][x]=='.'){ dis(x,y,board,used,list,count,move); } used[y][x] = false; } x-=move[i][0]; y-=move[i][1]; } } }