""" 0412.1 - Fizz Buzz - Solution 1 - Simple Iterative Approach """
#####################################################################################
# Imports
#####################################################################################
from typing import List
#####################################################################################
# Classes
#####################################################################################
class Solution:
"""Solution Class"""
def fizzBuzz(self, n: int) -> List[str]:
"""Fizz Buzz Function"""
answer = []
for i in range(1, n + 1):
if i % 3 == 0 and i % 5 == 0:
answer.append("FizzBuzz")
elif i % 3 == 0:
answer.append("Fizz")
elif i % 5 == 0:
answer.append("Buzz")
else:
answer.append(str(i))
return answer
#####################################################################################
# Functions
#####################################################################################
def testcase():
"""Test Function"""
print(Solution().fizzBuzz(3)) # ["1", "2", "Fizz"]
print(Solution().fizzBuzz(5)) # ["1", "2", "Fizz", "4", "Buzz"]
print(Solution().fizzBuzz(15)) # ["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]
#####################################################################################
# Main
#####################################################################################
if __name__ == "__main__":
testcase()
// 0412 - Runnable implementation
package main
/////////////////////////////////////////////////////////////////////////////////////
// Imports
/////////////////////////////////////////////////////////////////////////////////////
import ("fmt";"sort";"strings")
/////////////////////////////////////////////////////////////////////////////////////
// Solution and Main
/////////////////////////////////////////////////////////////////////////////////////
func solve(n int) []string { r:=[]string{};for i:=1;i<=n;i++{s:="";if i%3==0{s+="Fizz"};if i%5==0{s+="Buzz"};if s==""{s=fmt.Sprint(i)};r=append(r,s)};return r}
func main(){fmt.Println(solve(15))}
// 0412 - Runnable implementation
/////////////////////////////////////////////////////////////////////////////////////
// Solution and Main
/////////////////////////////////////////////////////////////////////////////////////
fn solve(n:i32)->Vec<String>{(1..=n).map(|i|{let mut s=String::new();if i%3==0{s+="Fizz"}if i%5==0{s+="Buzz"}if s.is_empty(){i.to_string()}else{s}}).collect()}fn main(){println!("{:?}",solve(15));}
""" 0412.2 - Fizz Buzz - Solution 2 - String Concatenation """
#####################################################################################
# Imports
#####################################################################################
from typing import List
#####################################################################################
# Classes
#####################################################################################
class Solution:
"""Solution Class"""
def fizzBuzz(self, n: int) -> List[str]:
"""Fizz Buzz Function"""
answer = []
for i in range(1, n + 1):
s = ""
if i % 3 == 0:
s += "Fizz"
if i % 5 == 0:
s += "Buzz"
answer.append(s if s else str(i))
return answer
#####################################################################################
# Functions
#####################################################################################
def testcase():
"""Test Function"""
print(Solution().fizzBuzz(3)) # ["1", "2", "Fizz"]
print(Solution().fizzBuzz(5)) # ["1", "2", "Fizz", "4", "Buzz"]
print(Solution().fizzBuzz(15)) # ["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]
#####################################################################################
# Main
#####################################################################################
if __name__ == "__main__":
testcase()
// 0412 - Runnable implementation
package main
/////////////////////////////////////////////////////////////////////////////////////
// Imports
/////////////////////////////////////////////////////////////////////////////////////
import ("fmt";"sort";"strings")
/////////////////////////////////////////////////////////////////////////////////////
// Solution and Main
/////////////////////////////////////////////////////////////////////////////////////
func solve(n int) []string { r:=[]string{};for i:=1;i<=n;i++{s:="";if i%3==0{s+="Fizz"};if i%5==0{s+="Buzz"};if s==""{s=fmt.Sprint(i)};r=append(r,s)};return r}
func main(){fmt.Println(solve(15))}
// 0412 - Runnable implementation
/////////////////////////////////////////////////////////////////////////////////////
// Solution and Main
/////////////////////////////////////////////////////////////////////////////////////
fn solve(n:i32)->Vec<String>{(1..=n).map(|i|{let mut s=String::new();if i%3==0{s+="Fizz"}if i%5==0{s+="Buzz"}if s.is_empty(){i.to_string()}else{s}}).collect()}fn main(){println!("{:?}",solve(15));}