Subcadena más larga sin repetir caracteres en Python
- Subcadena más larga sin repetir caracteres en Python
-
Use un bucle
While
para obtener la subcadena más larga en Python -
Use un bucle
For
y una instrucciónIf-Else
para obtener la subcadena más larga en Python
Presentaremos cómo hacer subcadenas en Python y cómo podemos hacer una subcadena sin repetir caracteres con ejemplos.
Subcadena más larga sin repetir caracteres en Python
En este tutorial, aprenderemos algo único que puede aumentar su conocimiento y hacer que sus bucles sean aún más perfectos. Aprenderemos cómo hacer subcadenas a partir de una cadena sin repetir caracteres.
La subcadena significa que si tenemos una cadena y la dividimos en varias partes pequeñas, se llamarán subcadenas de esa cadena específica. El método de la subcadena más larga es muy útil si queremos obtener la subcadena más larga que no repite los mismos alfabetos.
En este método, usaremos un ciclo que recorre la cadena completa, verifica cada elemento uno por uno y proporciona la subcadena no repetida de la cadena original.
En la programación de Python, existen muchos métodos para obtener la subcadena más larga. Estos métodos son muy simples y útiles; los discutiremos en detalle.
Use un bucle While
para obtener la subcadena más larga en Python
Crearemos una clase GetLongestSubstring
que tomará objeto
como parámetro en este método. Definiremos una función llamada Longitud
que tomará dos parámetros dentro de esta clase.
Pasaremos por el bucle while
hasta que hayamos encontrado la subcadena más larga de la cadena dada.
# python
class GetLongestSubstring(object):
def Length(self, x):
a = 0
b = 0
c = {}
sol = 0
while b < len(x):
if x[b] not in c or a > c[x[b]]:
sol = max(sol, (b - a + 1))
c[x[b]] = b
else:
a = c[x[b]] + 1
sol = max(sol, (b - a + 1))
b -= 1
b += 1
return sol
obj = GetLongestSubstring()
print(obj.Length("ABCDEFGABCGHIJKLMNO"))
Producción:
Como puede ver en el ejemplo anterior, la subcadena más larga posible tiene una longitud de 12, igual que la subcadena ABCGHIJKLMNO
de la cadena original.
Use un bucle For
y una instrucción If-Else
para obtener la subcadena más larga en Python
Intentaremos lograr el mismo escenario usando el bucle for
. Primero, definiremos la función GetLongestSubstring
como se muestra a continuación.
Esta función convertirá la cadena original en varias subcadenas y verificará si la subcadena es única o no. Como se muestra a continuación, esta función devolverá la subcadena más larga con su longitud.
# python
def GetLongestSubstring(x):
if len(set(x)) == len(x):
return len(x)
Substring = ""
StrLen = 1
for a in x:
if a not in Substring:
Substring = Substring + a
StrLen = max(StrLen, len(Substring))
else:
Substring = Substring.split(a)[1] + a
print(Substring)
return StrLen
print(GetLongestSubstring("ABCDEFGABCGHIJKLMNO"))
Producción:
Como puede ver en la solución anterior, podemos obtener fácilmente la subcadena más larga de una cadena usando el bucle for
con la instrucción if-else
.
Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.
LinkedIn