Resumen ganado de programación de la red en el DO

Versión sencilla: Escáner

1. Introduzca el tamaño conocido de la matriz bidimensional

 public static void main(String[] args) {
      Scanner scan = new Scanner(System.in);
      int n=scan.nextInt();//定义需要的阶层数n
      int[][]array=new int[n][n];//定义一个n*n的数组array
      System.out.println("输入数组的各个元素:");
      for(int i=0;i<n;i++) {
          for (int j = 0; j < n; j++) 
              array[i][j] = scan.nextInt();
      }
 }

2. Analizar subcadena es igual a una determinada cadena principal

public class StringExist {
    public static void main(String [] args){
        //输入主串和子串
        Scanner input = new Scanner(System.in);
        String mainString = input.nextLine();
        String subString = input.nextLine();
        //判断方法调用
        boolean result = jugdeExist(mainString,subString);
        System.out.println(result);

    }
    //判断子串是否与主串的某段相等
    public static boolean jugdeExist(String mainString,String subString){
        if (null== mainString)return false;
            String[] forArray = mainString.split(",");
            for (String Id : forArray) {
                if(Id.equals(subString))
                    return true;
            }
        return false;
    }
}

Actualizado: Zona de influencia y Corriente

1. Entrada: el primer número indica la longitud de la segunda fila de la primera fila de la matriz
7. 6.
1. 5. 4. 3 2. 6. 7.

BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String line = input.readLine();// 读取第一行数据
String[] str = line.trim().split(" ");
int n = Integer.parseInt(str[0]);
int v = Integer.parseInt(str[1]);
line = input.readLine(); // 读取第二行数据
s = line.trim().split(" ");
// 创建一个int型的数组用来储存第二行的个数字
int[] nums = new int[n];
for (int i = 0; i < n; i ++) {
   nums[i] = Integer.parseInt(s[i]);
}   
// 测试输入是否正确
for (int num: nums) { System.out.print(num + " ");  }

2. El recorrido de árbol binario después preámbulo de

第一行输入两个整数 n 和 root,n表示二叉树的总节点数,root表示树的根节点。
接下来 n 行每行三个整数 fa,lch,rch,fa的左儿子为lch,右儿子为rch。
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
public class Main {         
//第一步:定义树结点
    private static class TreeNode{
        TreeNode left;    TreeNode right;  int val;
        public TreeNode(int val) {
           this.val = val;   left = null;   right = null;
        }
    }
    //第二步:创建一个树的结点
    private static TreeNode createTreeCore(BufferedReader in) throws Exception{
        int[] nodes = getIntArray(in.readLine()); //把一行转为整数
        TreeNode node = new TreeNode(nodes[0]);//数组中第一个数是根节点
        //通过递归确定了层数
        if (nodes[1] != 0) node.left = createTreeCore(in);//左孩子
        if (nodes[2] != 0) node.right = createTreeCore(in); //右孩子
        return node;
    }
     //把接收到的字符串转换成整数
    private static int[] getIntArray(String str) {
        String[] temp = str.split(" ");
        int[] result = new int[temp.length];
        for (int i = 0; i < temp.length; i++) {
            result[i] = Integer.parseInt(temp[i]);}
        return result;
    }
    public static void main(String[] args) throws Exception{
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        //将第一次换行符前的所有输入以空格分开并保存成字符串的形式
        String[] strings = bf.readLine().split(" ");
        StringBuilder sb = new StringBuilder();//作为结果的输出流
        TreeNode treeNode = createTreeCore(bf); //创建树
        preOrder(treeNode,sb); //前序遍历
        //因为在前序遍历时会多添加一个空格,因此这里最后一个空格不能读取
        System.out.println(sb.substring(0,sb.length()-1));
        sb.delete(0,sb.length());//清空
        innerOrder(treeNode,sb);//中序遍历
        System.out.println(sb.substring(0,sb.length()-1));
        sb.delete(0,sb.length());
        reviewOrder(treeNode,sb);
        System.out.println(sb.substring(0,sb.length()-1));
    }
    //前序遍历
    private static StringBuilder  preOrder(TreeNode treeNode,StringBuilder sb){
        if (treeNode==null) return null;
        sb.append(treeNode.val+" ");
        preOrder(treeNode.left,sb);
        preOrder(treeNode.right,sb);
        return sb;
    }
    //中序遍历
    private static StringBuilder innerOrder(TreeNode treeNode,StringBuilder sb){
        if (treeNode==null) return null;
        innerOrder(treeNode.left,sb);
        sb.append(treeNode.val).append(" ");//注意空格
        innerOrder(treeNode.right,sb);
        return sb;
    }
    private static StringBuilder reviewOrder(TreeNode treeNode,StringBuilder sb){
        if (treeNode==null) return null;
        reviewOrder(treeNode.left,sb);
        reviewOrder(treeNode.right,sb);
        sb.append(treeNode.val);
        sb.append(" ");
        return sb;
    }
}

3. Título calle dispuestos
de entrada: una primera línea de entrada contiene un número entero t positivo (1 <= t <= 1,000), representa el número de casos de prueba
de datos de ensayo siguientes cada dos líneas, una línea de un primer número entero positivo n (1 < = n <= 1,000), representa la longitud de la carretera.
La segunda fila muestra la estructura de carreteras una cadena s, que comprende solamente '' y 'X-'.
Salida: Para cada caso de prueba, la salida de un número entero positivo requiere un número mínimo de farolas.

public static void main(String[] args) throws IOException{
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String sa = bf.readLine();
        int ca = Integer.valueOf(sa);// 转化包装类
        for(int i=0; i<ca; i++){
            int len = Integer.valueOf(bf.readLine());
            String s = bf.readLine();
            System.out.println(String.valueOf(lampSum(len,s)));
        }
    }

Finalmente, un adjunto más características 2019 título de la lista sesión de juego YORK
de la primera entrada acto un número entero positivo T (T <= 10), indica el número de conjuntos de datos de prueba.
Luego están conjunto T de datos. La primera fila de datos cada uno un número entero positivo N (1 <= N <= 200), representa el número de la información recibida. Los segundos enteros positivos N actúa, en el tiempo indica que la información de la sesión-id recibida desde el primero hasta el fin. identificador de sesión no más de 1 mil millones.
Descripción de la salida: Para cada conjunto de datos, una línea de salida, superior a la lista de orden inferior de las conversaciones, el id de sesión de salida.
Adyacente identificador de sesión con un espacio, final de la línea sin espacios.


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
    public static void main(String[] args) throws IOException {
      BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
      int n = Integer.parseInt(bf.readLine());//String对象转换为Integer对象
      for (int i = 0; i < n; i++) {
          int m = Integer.parseInt(bf.readLine());
          System.out.println(getDialogue(bf.readLine(),m));
      }
  }
    //用一个HashSet保存ID,做一个判断作用,从后往前遍历,如果set不包含该id,就添加进去。
  private static String getDialogue(String s, int m) {
      StringBuilder sb = new StringBuilder();
      HashSet<String> set = new HashSet<>();
      String[] ids = s.split(" ");
      for (int i = m - 1; i >= 0; i--) {
          if (!set.contains(ids[i])) {
              set.add(ids[i]);
              sb.append(ids[i]).append(" ");
          }   
      }
      return sb.substring(0,sb.length()-1).toString();
    }
}
Publicado 22 artículos originales · ganado elogios 4 · Vistas 1480

Supongo que te gusta

Origin blog.csdn.net/smile001isme/article/details/105303799
Recomendado
Clasificación