Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. """
  2. Developpe par : Jean-Christophe Bauduin et Timmour Petit (11.13)
  3. """
  4.  
  5. import re
  6. def is_adn(s):
  7. """
  8. Vérifie si une string respecte la règle de l'ADN
  9. pre: `s` String d'adn
  10. post: True si c'est de l'adn False si vide ou ne respecte pas les règles de l'adn
  11. """
  12. r = False
  13. if(len(s)>0):
  14. s = re.sub(r"([ATCGatcg]*)","",s)
  15. r = True if s=="" else False
  16. return(r)
  17.  
  18. def positions(s, p):
  19. """
  20. Renvoit la position d'un élément dans un string
  21. pre: `s` String, adn
  22. `p` String, element recherche
  23. post: True si c'est de l'adn False si vide ou ne respecte pas les règles de l'adn
  24. """
  25. s = s.lower()
  26. p = p.lower()
  27. r = []
  28. for m in re.finditer(p, s):
  29. r.append(m.start())
  30. return(r)
  31.  
  32. def distance_h(s1,s2):
  33. """
  34. Calcule la distance entre 2 strings (soit regarder le nombre d'elements qui different)
  35. pre:
  36. `s1` String d'adn
  37. `s2` String d'adn
  38. les 2 distances doivent etre egale
  39. post: Le nombre de caracteres qui different ou None si les 2 strings n'ont pas la meme taille
  40. """
  41. count = 0
  42. if(len(s1)==len(s2)):
  43. for c1,c2 in zip(s1.lower(),s2.lower()):
  44. count += 0 if c1==c2 else 1
  45. return(count)
  46. else:
  47. return None
  48.  
  49. def plus_long_palindrome(text):
  50. """
  51. Renvoit le plus long palindrome
  52. pre:
  53. `text` String
  54. post: Renvoit le plus grand palindrome
  55. """
  56. maximum = 0
  57. palindrome = ""
  58. for i in range(len(text)):
  59. string = text[i:]
  60. for n in reversed(range(2,len(string)+1)):
  61. possibilite = string[:n]
  62. if(possibilite == possibilite[::-1] and maximum <n):
  63. maximum = n
  64. palindrome = possibilite
  65. break
  66. return(palindrome)
  67. """
  68. version basique
  69.  
  70. def distances_matrice(l):
  71. r = []
  72. for e in l:
  73. r.append(list(map(lambda p: distance_h(e,p),l)))
  74. return(r)
  75. """
  76. #version fun
  77. def distances_matrice(l):
  78. return(list(map(lambda e: list(map(lambda p: distance_h(e,p),l)),l)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement