Formatted question description: https://leetcode.ca/all/412.html

Level

Easy

Description

Write a program that outputs the string representation of numbers from 1 to n.

But for multiples of three it should output “Fizz” instead of the number and for the multiples of five output “Buzz”. For numbers which are multiples of both three and five output “FizzBuzz”.

Example:

n = 15,

Return:
[
    "1",
    "2",
    "Fizz",
    "4",
    "Buzz",
    "Fizz",
    "7",
    "8",
    "Fizz",
    "Buzz",
    "11",
    "Fizz",
    "13",
    "14",
    "FizzBuzz"
]

Solution

For each integer from 1 to n, use a string to represent the number.

For each number, do the following operations. If it is divisible by 3, append “Fizz” to the string representation. If it is divisible by 5, append “Buzz” to the string representation. If the string representation is empty after checking whether it is divisible by 3 or 5, set the string representation to be the number. Note thant checking whether the number is divisible by 3 and checking whether the number is divisible by 5 are both done and it is possible that a number is both divisible by 3 and 5.

Add the string representation of each number to the result list and return the result list.

Java

class Solution {
    public List<String> fizzBuzz(int n) {
        List<String> list = new ArrayList<String>();
        for (int i = 1; i <= n; i++) {
            String str = "";
            if (i % 3 == 0)
                str += "Fizz";
            if (i % 5 == 0)
                str += "Buzz";
            if (str.length() == 0)
                str = String.valueOf(i);
            list.add(str);
        }
        return list;
    }
}

All Problems

All Solutions