Advertisement
MaxDvc

Palindrome

Dec 21st, 2019
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.59 KB | None | 0 0
  1. #Lo so, non era richiesto nell'esercizio ma mi stavo divertendo.
  2.  
  3. def palindrome2(s):
  4. #@param:
  5. #   s: str;
  6. #   return: bool;
  7.     if len(s)<2:
  8.         return True
  9.     if len(s)%2==0:
  10.         if s[-1+len(s)//2]==s[len(s)//2]:
  11.             newS = s[:-1+len(s)//2]+s[1+len(s)//2:]
  12.             return palindrome2(newS)
  13.         else: return False
  14.     elif len(s)%2!=0:
  15.         newS = s[:len(s)//2]+s[1+len(s)//2:]
  16.         return palindrome2(newS)
  17.     else: return False
  18.  
  19. def palindromeSentence(string):
  20. #@param:
  21. #   string: str;
  22. #   return: bool;
  23.     s = prepareString(string)
  24.     return palindrome2(s)
  25.  
  26. def reverse(string):
  27. #@param:
  28. #   string: str;
  29. #   return: str;
  30.     s = ""
  31.     lenght = len(string) -1
  32.     for i in range(lenght,-1,-1):
  33.         s += string[i]
  34.     return s
  35.  
  36. def prepareString(string):
  37. #@param:
  38. #   string: str;
  39. #   return: str;
  40.     s = ""
  41.     for i in range(0,len(string)):
  42.         if string[i].isdigit() or string[i].isalpha():
  43.             s += string[i]
  44.     s = s.lower()
  45.     return s
  46.  
  47. def test():
  48.     from random import randint
  49.     r = ""
  50.     print("Test for string lenght 0, expected True.\nResult:",palindrome2(r))
  51.     r = str(randint(0,9))
  52.     print("\nTest for string lenght 1, expected True.\nstring:",r,"\nResult:",palindrome2(r))
  53.     r = randint(1000,100000)
  54.     r = str(r) + reverse(str(r))
  55.     print("\nTest for string random lenght (from 8 to 12 digits), expected True.\nstring:",r,"\nResult:",palindrome2(r))
  56.     r = r+" "+r+", "+r+"!"
  57.     print("\nTest for full sentence random lenght, expected True.\nstring:",r,"\nResult:",palindromeSentence(r))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement