No podrá encontrar una solución que sea de una complejidad menor que O (n) porque necesita pasar por todos los caracteres en el peor de los casos con una cadena de entrada que tenga como máximo 0 o 1 espacio en blanco consecutivo, o es completamente en blanco
Sin embargo, puede hacer algunas optimizaciones, pero seguirá considerándose O (n).
Por ejemplo:
Sea M el actual partido más largo hasta el momento a medida que avanza a través de su lista. Supongamos también que puede acceder a los elementos de entrada en O (1), por ejemplo, tiene una matriz como entrada.
Cuando ve un espacio no en blanco, puede omitir elementos M si el current + M
no es un espacio en blanco. Seguramente, ningún espacio en blanco más largo que M puede estar contenido dentro.
Y cuando ve un caracter de picea blanca, si current + M-1
no es un espacio en blanco, sabe que no tiene las ejecuciones más largas o puede omitir también en ese caso.
(-1) Eso está mal: no tiene que examinar cada carácter. –
Si la cadena contiene solo caracteres en blanco, dígame cómo no examinará cada personaje. –
Con "al menos" quiso decir "a lo sumo", supongo :) – Thomas