¿Cuántas subcadenas se pueden formar a partir de una cadena de caracteres de longitud n?

Para resolver este problema, primero podemos pensar en: “¿cuántas subcadenas de longitud 1 se pueden formar a partir de una cadena de caracteres de longitud n?”

Es una respuesta simple. Si tomamos el paso de 1 carácter, podemos desde n subcadenas de la cadena original (vamos a llamarlo s) .

Por ejemplo, si s = “abcde”, s con longitud n = 5, podemos formar estas subcadenas de longitud 1 : “a”, “b”, “c”, “d”, “e” (5). Entonces, formamos n subcadenas.

Pero en la pregunta original, queremos saber cuántas subcadenas de cualquier longitud. Esta respuesta no es suficiente.

Veamos cuántas subcadenas de longitud 2 se pueden formar. Vamos a dar un paso de 1 carácter, en el ejemplo:

si s = “abcde”, s con longitud n = 5, podemos formar estas subcadenas de longitud 2 : “ab”, “bc”, “cd”, “de” (4). Porque, cuando llegamos a la “e”, no podemos formar una subcadena de dos longitudes. No hay suficientes personajes a continuación. Entonces, formamos n-1 subcadenas.

Algo similar sucederá con las subcadenas de longitud 3. Podemos formar n-2 subcadenas, y así sucesivamente.

Entonces, si pensamos en cualquier cadena s, podemos concluir que podemos formar:

  • n subcadenas de longitud 1
  • n-1 subcadenas de longitud 2
  • n-2 subcadenas de longitud 3
  • … pronto
  • 1 subcadenas de longitud n

Podemos resumir todos esos resultados para saber “¿cuántas subcadenas de cualquier longitud se pueden formar a partir de una cadena de caracteres de longitud n?”

  • n + n-1 + n-2 + n-3 + n-4 +…. + 1

La respuesta es una expresión de suma matemática. Podemos escribirlo de otra manera:

Fuente: Summation – Wikipedia Summation – Wikipedia

Entonces, la respuesta final a la pregunta “¿cuántas subcadenas se pueden formar a partir de una cadena de caracteres de longitud n?” Es: (n * (n + 1)) / 2

Resolvamos este problema en segmentos. deje que la cadena sea 1234. La subcadena de la longitud 1 es 1, 2, 3 y 4. La subcadena de la longitud 2 es 12, 23, 34. La subcadena de longitud 3 es 123, 234. y en la última subcadena de la longitud 4 es 1234. entonces es simplemente 4 + 3 + 2 + 1. O puedes decir n * (n + 1) / 2 donde n es la longitud de la cadena

More Interesting

¿Cuáles son todos los conceptos de DBMS y Java que deben conocerse para manejar la entrevista técnica?

¿Cómo escribirías el código para encontrar la tarjeta faltante del mazo en una complejidad mejor que O (n)?

Cómo prepararse para las preguntas de la entrevista técnica de TCS si soy ingeniero eléctrico

¿Qué hizo Rick Viscomi durante los 3 años posteriores a la licenciatura (antes de Google)?

¿Cuál es la mejor manera de prepararse para las entrevistas en el sitio web GeeksforGeeks?

¿Cómo me preparo para una entrevista in situ para el rol de ingeniero de desarrollo de software en Amazon Hyderabad?

¿Me harán preguntas específicas de C ++ si lo he incluido en mi currículum pero la descripción del trabajo dice que debería tener experiencia con Python, Java o C ++?

¿Cómo puedo usar este verano para prepararme para las entrevistas de pasantía?

¿Qué tipo de preguntas se hacen en una entrevista técnica?

¿Por qué las grandes compañías tecnológicas como Google / Amazon / FB no hacen que sus entrevistas de codificación de pantalla de teléfono sean más estrictas?

Se le proporciona una matriz 2D (que representa un mapa mundial). Las celdas adyacentes con el mismo número representan alguna nacionalidad. Cuenta el número de todas las nacionalidades. ¿Cuál es el enfoque / algoritmo correcto aquí?

Cómo responder preguntas de entrevista de diseño orientado a objetos de manera paso a paso

Cómo dividir una matriz que consta de N enteros positivos (incluido cero) en K subconjuntos de modo que la suma de elementos de cada subconjunto sea la misma

¿Cuál fue su peor experiencia en entrevistas de ingeniería de software (como candidato) y qué la hizo tan mala?

Cómo adaptar mi currículum a un puesto de trabajo específico