Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Lo so, non era richiesto nell'esercizio ma mi stavo divertendo.
- def palindrome2(s):
- #@param:
- # s: str;
- # return: bool;
- if len(s)<2:
- return True
- if len(s)%2==0:
- if s[-1+len(s)//2]==s[len(s)//2]:
- newS = s[:-1+len(s)//2]+s[1+len(s)//2:]
- return palindrome2(newS)
- else: return False
- elif len(s)%2!=0:
- newS = s[:len(s)//2]+s[1+len(s)//2:]
- return palindrome2(newS)
- else: return False
- def palindromeSentence(string):
- #@param:
- # string: str;
- # return: bool;
- s = prepareString(string)
- return palindrome2(s)
- def reverse(string):
- #@param:
- # string: str;
- # return: str;
- s = ""
- lenght = len(string) -1
- for i in range(lenght,-1,-1):
- s += string[i]
- return s
- def prepareString(string):
- #@param:
- # string: str;
- # return: str;
- s = ""
- for i in range(0,len(string)):
- if string[i].isdigit() or string[i].isalpha():
- s += string[i]
- s = s.lower()
- return s
- def test():
- from random import randint
- r = ""
- print("Test for string lenght 0, expected True.\nResult:",palindrome2(r))
- r = str(randint(0,9))
- print("\nTest for string lenght 1, expected True.\nstring:",r,"\nResult:",palindrome2(r))
- r = randint(1000,100000)
- r = str(r) + reverse(str(r))
- print("\nTest for string random lenght (from 8 to 12 digits), expected True.\nstring:",r,"\nResult:",palindrome2(r))
- r = r+" "+r+", "+r+"!"
- print("\nTest for full sentence random lenght, expected True.\nstring:",r,"\nResult:",palindromeSentence(r))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement