[Prueba escrita de algoritmo de Niuke 24 de marzo, preguntas de prueba de la máquina Huawei] Proporcione una cadena numérica pura, devuelva el número de subcadenas numéricas individuales consecutivas

Descripción del Título

Descripción: le da una cadena numérica pura, devuelva el número de subcadenas numéricas individuales consecutivas

inmediato:

1 <= s. Longitud <= 100

Ingrese una descripción:

"11121"

Explicación:

Las subcadenas que contienen solo una letra son: "111", "11", "1" y "2"

"111" aparece 1 vez
"11" aparece 2 veces
"1" aparece 4 veces
"2" aparece 1 vez
Total 1 + 2 + 4 + 1 = 8

Ideas de resolución de problemas:

  1. Encuentra todas las subcadenas primero
  2. Luego juzga si las subcadenas son todas del mismo carácter
    /**
     * 暴力法
     * @param str
     * @return
     */
    public static int test_1(String str) {
    
    
        int res = 0;
        HashMap<String,Integer> map = new HashMap<>();
        for(int i = 0; i < str.length(); i++){
    
    
            for (int j = i+1; j<=str.length(); j++){
    
    
                map.put(str.substring(i,j),map.getOrDefault(str.substring(i,j),0)+ 1);
            }
        }
        System.out.println(map.toString());
        //遍历map的所有key
        for (String key:map.keySet()){
    
    
            //System.out.println("key= "+key+" and value= "+map.get(key));
            //判断key中的字符是否都是相同字符
            if (isSameChars(key)){
    
    
                System.out.println("key= "+key+" and value= "+map.get(key));
                res = res +map.get(key);
            }

        }

        return res;
    }

    public static boolean isSameChars (String str) throws IllegalArgumentException {
    
    
        if (str == null)
            throw new IllegalArgumentException("Input string should not be null.");
        else if (str.length() < 2)
            return true;
        char first = str.charAt(0);
        for (int i=1; i<str.length(); i++)
            if (str.charAt(i) != first)
                return false;
        return true;
    }

Supongo que te gusta

Origin blog.csdn.net/qq_35655602/article/details/115187582
Recomendado
Clasificación