Caracteres válidos em uma String
Recebi uma string e tenho que retornar False se houver um ou mais caracteres inválidos, caso contrário, True. A ressalva é que eu só posso funções internas e operações str (por exemplo: in, +, indexação, len) e recursão. O que tenho até agora não está funcionando:
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, esse código não funciona por causa da recursão e adição de 1 aovalid_seq
A variável é limpa apenas após a próxima iteração recursiva.