add the dna algorithm (#6323)

* adding the dna algorithm

* following bot recommendations

following bot recommendations for the indentation

* following bot recommendations

following bot recommendations regarding indentation [ again ]

* following bot recommendations

following bot recommendations regarding indentation [ again. ]

* following bot recommendations

following bot recommendations.
This commit is contained in:
Margaret 2022-09-05 04:51:11 +03:00 committed by GitHub
parent b1818af517
commit cbf3c6140a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

26
strings/dna.py Normal file
View File

@ -0,0 +1,26 @@
import re
def dna(dna: str) -> str:
"""
https://en.wikipedia.org/wiki/DNA
Returns the second side of a DNA strand
>>> dna("GCTA")
'CGAT'
>>> dna("ATGC")
'TACG'
>>> dna("CTGA")
'GACT'
>>> dna("GFGG")
'Invalid Strand'
"""
r = len(re.findall("[ATCG]", dna)) != len(dna)
val = dna.translate(dna.maketrans("ATCG", "TAGC"))
return "Invalid Strand" if r else val
if __name__ == "__main__":
__import__("doctest").testmod()