Por fin luego de tanto batallar hemos hallado el resultado de este atasco que algunos los usuarios de nuestro sitio han tenido. Si tienes algo que compartir no dudes en aportar tu comentario.
Solución:
subsecuencia
La subsecuencia es una generalización de subcadena, sufijo y prefix. Encontrar el más largo string que es una subsecuencia de dos o más cadenas se conoce como el problema de la subsecuencia común más larga.
Ejemplo: El string “anna” es una subsecuencia de la string “plátano”:
banana
|| ||
an na
subcadena
Una subcadena de un string es un prefix de un sufijo de la string, y equivalentemente un sufijo de un prefix. Si uno string es una subcadena de otra, también es una subsecuencia, que es un concepto más general.
Ejemplo: El string “ana” es una subcadena (y una subsecuencia) de banana en dos compensaciones diferentes:
banana
|||||
ana||
|||
ana
Leer más aquí.
Pero en lo que respecta a Java, no hay ninguna diferencia en su uso, como se indica claramente en el javadoc. Además, como se indica allí, el método subSequence
solo se ha implementado en clase String
para mantenerlo en conformidad con la CharSequence
interfaz. Y el nombre de este método es, de hecho, un nombre inapropiado.
Para entender esto, lo primero que debe saber es cuál es la diferencia entre subcadena y subsecuencia
subcadena es un continuo parte o subparte de un string
mientras que
subsecuencia es la parte de un string o secuencia, que puede ser continua o no pero la pedido de los elementos se mantiene
Por ejemplo, digamos que tenemos las siguientes cadenas:
str_a="hello there"
str_b="hello"
str_c="ello th"
str_d="hllo"
str_e="ho hre"
str_f="there hello"
str_b
es una subcadena de str_a
, str_c
es también una subcadena de str_a
pero str_d
no es una subcadena de str_a
como esta subcadena no es continuo.
Ahora todas las subcadenas son subsecuencias ya que se mantiene el orden.
str_d
es una subsecuencia de str_a
, str_e
es también una subsecuencia de str_a
sin embargo str_f
no es una subsecuencia de str_a
como en este caso el pedido no se mantiene
Ahora, para java, no hay una aclaración adecuada con respecto a estos métodos en javadoc.
Utilizando str.subSequence(begin, end)
devuelve una CharSequence que es una forma de solo lectura de la string representado como una secuencia de caracteres. Por ejemplo:
String string = "Hello";
CharSequence subSequence = string.subSequence(0, 5);
Se lee solo en el sentido de que no se puede cambiar el chars
dentro de CharSequence
sin instanciar una nueva instancia de un CharSequence
.
Si tienes que usar str.subSequence(begin, end)
, puede convertir el resultado en un String
:
String string = "Hello";
String subSequence = (String) string.subSequence(0, 5);
y usa todo lo normal String
a los operadores les gusta subSequence += " World";
valoraciones y reseñas
Nos encantaría que puedieras difundir este enunciado si lograste el éxito.