A veces sucede que mientras escribo una oración, me distraigo y termino escribiendo el mismo par de palabras dos veces, dos veces seguidas.
Para asegurarse de que otras personas no se molesten por esto, su tarea es escribir un programa que resuelva este problema.
Tarea
Dada una cadena de entrada (si es importante para su idioma, puede suponer una entrada ASCII solo que no contiene saltos de línea) str
, que contiene en algún lugar en el medio una subcadena que ocurre dos veces en sucesión inmediata, devuelva la cadena con una instancia de este subcadena eliminada.
En el caso de múltiples posibilidades, devuelva la respuesta más corta posible (es decir, elija la subcadena repetida consecutiva más larga y elimine esa).
En el caso de múltiples subcadenas repetitivas consecutivas de igual longitud, elimine la primera (es decir, la primera que se encuentre al leer la cadena de adelante hacia atrás).
Puede suponer que la entrada es correcta (es decir, siempre contiene una subcadena repetida consecutiva), lo que podría ayudar a reducirla.
Ejemplos
- Entrada:
hello hello world
-> Salida:hello world
. - Entrada:
foofoo
-> Salida:foo
. (Entonces: Sí, la cadena solo puede consistir en la parte repetida dos veces). - Entrada:
aaaaa
-> Salida:aaa
como la subcadena consecutiva más larga está aquíaa
. - Entrada:
Slartibartfast
-> Esta no es una entrada válida, ya que no contiene una subcadena repetida consecutiva, por lo que no necesita manejar este caso. - Entrada:
the few the bar
-> Esta es otra entrada no válida, ya que la parte que se repite debe seguir inmediatamente a la parte original. En este caso,the
ythe
están separados por otra cosa intermedia, por lo que esta entrada no es válida. - Entrada:
ababcbc
-> Salida:abcbc
. Las dos subcadenas repetidas consecutivas más largas posibles sonab
ybc
. Comoab
se encontró anteriormente en la cadena, esta es la respuesta correcta. - Entrada:
Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo
. Salida:Buffalo buffalo buffalo buffalo Buffalo buffalo
. (El reemplazo realizado debe ser sensible a mayúsculas y minúsculas). - Entrada:
Sometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice couple of words twice in succession.
-> Salida:Sometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice in succession.
. Solo se elimina la subcadena repetida consecutiva más larga.
Su código debe ser lo más corto posible, ya que es code-golf , por lo que gana la respuesta más corta en bytes. ¡Buena suerte!
p
enhappens
Sometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice couple of words twice in succession.
como entrada, la salida debería serSometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice in succession.
. Solo se elimina la duplicación encontrada más larga.