Capacitación sobre una pregunta del día----10 de abril

hash de cadena

P3370 [Plantilla] Cadena Hash - Luogu

imagen-20220410153245336

Esta pregunta usa directamente el conjunto para deduplicar y, finalmente, cuenta el tamaño del conjunto.

No sé si entendí mal el significado del título. Siento que necesito implementar un hash yo mismo. Tal vez este sea el significado de la segunda oración de su título. La cadena se asigna a una matriz, y luego el hash el conflicto puede ser manejado.

Para tratar los conflictos de hash, generalmente, se establece una lista enlazada en la posición de conflicto para almacenar todos los datos con el mismo valor de hash. La hashmapclase en Java también se implementa de esta manera, pero después de que la cantidad de datos supera los 8, hay un operación para convertir la lista enlazada en un árbol rojo-negro. Cuando se reduzca la cantidad de datos, se volverá a convertir (no sé si es correcto o no, estaba escrito así cuando leí el Baguwen)

package cn.edu.xjtu.daily.April.day_4_10;

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

/**
 * https://www.luogu.com.cn/problem/P3370
 */
public class Main {
    
    
    public static void main(String[] args) {
    
    
        Set<String> set = new HashSet<>();
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        for (int i = 0; i < N; i++) {
    
    
            set.add(sc.next());
        }
        System.out.println(set.size());
        
    }
}

Supongo que te gusta

Origin blog.csdn.net/qq_46311811/article/details/124079560
Recomendado
Clasificación