Caracteres válidos en una cadena
Me dan una cadena y tengo que devolver False si hay uno o más caracteres no válidos, de lo contrario, True. La advertencia es que solo puedo incorporar funciones y operaciones str (por ejemplo: in, +, indexing, len) y recursión. Lo que tengo hasta ahora no funciona:
def is_valid_sequence(dna):
""" (str) -> bool
Return True if and only if the DNA sequence is valid
(A, T, C, and G)
:param dna: string sequence
:return: true or false
>>> is_valid_sequence('ATTAC')
True
>>> is_valid_sequence('FBSSS')
False
"""
valid_seq = 0
if len(dna) == 1 and dna in ['A', 'T', 'C', 'G']:
valid_seq += 1
else:
return is_valid_sequence(dna[1:])
Obviamente, este código no funciona debido a la recursividad y al agregar 1 alvalid_seq
La variable simplemente se borra después de la siguiente iteración recursiva.