筆試都是acm模式,需要自己處理輸入輸出
首先注意類名都是規定好的,一般是Main類,最終直接new一個對象輸出結果
其次有一些常用函數:
爲了導入包,需要import java.util.*;
Scanner sc=new Scanner(System.in);//輸入 int n=sc.nextInt();//一個整數 String str=sc.next();//一個字符串 String str1=sc.nextLine().split(" ")[0];//獲取一行並且分割
然後會經常碰到一些轉換,new一些數組或者二維數組
Integer.parseInt(str.split("->")[0]);//字符串轉int型 String[][] table=new String[n][2];//二維數組
總的來說,只要是空格分隔的,總能直接next或者nextint
逗號或者其他分割的,需要split
舉幾個題目的例子:
題1:
Scanner sc=new Scanner(System.in); int n=sc.nextInt(); String[][] table=new String[n][2]; for(int i=0;i<n;i++) { table[i][0]=sc.next(); table[i][1]=sc.next(); } Solution1 solution1=new Solution1();
第二題:
Scanner sc=new Scanner(System.in); String[] timeStr=sc.nextLine().split(","); //存第一行數據 List<Integer> list=new ArrayList<>(); for(int i=0;i<timeStr.length;i++) { list.add(Integer.parseInt(timeStr[i])); } //存第二行數據 String[] relyStr=sc.nextLine().split(","); List<Integer[]> table=new ArrayList<>(); for(String str:relyStr) { Integer[] rely=new Integer[2]; rely[0]=Integer.parseInt(str.split("->")[0]); rely[1]=Integer.parseInt(str.split("->")[1]); table.add(rely); }
第三題:
Scanner sc=new Scanner(System.in); int row=sc.nextInt(); int col=sc.nextInt(); int t=sc.nextInt(); int[][] table=new int[row][col]; for(int i=0;i<row;i++) { for(int j=0;j<col;j++) { table[i][j]=sc.nextInt(); } }