Skip to content

Instantly share code, notes, and snippets.

@calina-c
Created December 30, 2016 12:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save calina-c/ad51d9690a758f579d43011f6632b58f to your computer and use it in GitHub Desktop.
Save calina-c/ad51d9690a758f579d43011f6632b58f to your computer and use it in GitHub Desktop.
class FizzRule:
def matchesRule(self, number):
return not (number % 3);
def getReplacement(self):
return "Fizz";
class BuzzRule:
def matchesRule(self, number):
return not (number % 5);
def getReplacement(self):
return "Buzz";
class FizzBuzzRule:
def matchesRule(self, number):
return not (number % 15);
def getReplacement(self):
return "FizzBuzz";
class Solution(object):
def transform(self, number):
fizzBuzzRule = FizzBuzzRule();
fizzRule = FizzRule();
buzzRule = BuzzRule();
rules = [fizzBuzzRule, fizzRule, buzzRule];
for rule in rules:
if (rule.matchesRule(number)):
return rule.getReplacement();
return str(number);
def fizzBuzz(self, n):
"""
:type n: int
:rtype: List[str]
"""
list = [];
for number in range(1,n+1):
list.append(self.transform(number));
return list
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment