Podemos resolver esto mirando los dígitos en cada posición por separado. Por ejemplo, sea N = 1048365. Contaremos cuántas veces aparece el dígito d en la posición 8 actual. Escriba N como LcR, con L = 104, c = 8 y R = 365. Consideraremos cuatro casos.
Caso 1: d = 0
En este caso, cada número que tenga 0 en la posición actual de 8 debe tener la forma M0S. Como los números se escriben sin ceros a la izquierda, M debe ser al menos 1. Y dado que L = 104, M también puede ser 104 como máximo. Para cada valor de M, S puede ser cualquier cadena numérica en [000 … 999]. Por lo tanto, el número total de veces que 0 aparece en la posición actual de 8 es 104 × 1000 = 104000.
Caso 2: 1≤d≤7
Se aplican las mismas condiciones que antes, excepto por el hecho de que M = 0 también proporciona soluciones válidas. Por lo tanto, el número de veces que d aparece en la posición actual de 8 es 105 × 1000 = 1050000.
- ¿Cuál es la mejor manera de prepararse para una entrevista de PM PM en una empresa de tecnología?
- Cómo encontrar la suma mínima entre un conjunto de n elementos mayor que una clave dada
- ¿Cuáles son las preguntas principales de la entrevista Java?
- ¿De dónde obtienen la mayoría de los entrevistadores sus preguntas de entrevistas técnicas de informática?
- Si descifras la entrevista de Google por pura suerte de obtener solo preguntas fáciles, ¿qué pasará contigo a la larga? ¿Eventualmente prosperarás o te las arreglarás?
Caso 3: d = 8
En este caso, tener M de [0 … 103] permite los 1000 valores de S como antes. Pero tener M = 104 nos permite solo S de [0 … 365] ya que tomar una S más alta nos dará un número mayor que N. Por lo tanto, el número total de veces que aparece 8 es 104 × 1000 + 366 = 104366.
Caso 4: d> 8
En este caso, podemos tener M solo en el rango [0 … 103]. Para cada valor de M, todos los 1000 valores de S están permitidos y el número total de veces que aparece d es 104 × 1000 = 104000.
Repita el procedimiento para cada posición en N y cada dígito d. Los recuentos de todos los dígitos pueden calcularse en O (10 log N).