LeetCode_412. Fizz Buzz

我是研究僧i 提交于 2019-12-05 14:47:35

 

412. Fizz Buzz

Easy

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"
]

 

package leetcode.easy;

public class FizzBuzz {
	public java.util.List<String> fizzBuzz1(int n) {

		// ans list
		java.util.List<String> ans = new java.util.ArrayList<String>();

		for (int num = 1; num <= n; num++) {

			boolean divisibleBy3 = (num % 3 == 0);
			boolean divisibleBy5 = (num % 5 == 0);

			if (divisibleBy3 && divisibleBy5) {
				// Divides by both 3 and 5, add FizzBuzz
				ans.add("FizzBuzz");
			} else if (divisibleBy3) {
				// Divides by 3, add Fizz
				ans.add("Fizz");
			} else if (divisibleBy5) {
				// Divides by 5, add Buzz
				ans.add("Buzz");
			} else {
				// Not divisible by 3 or 5, add the number
				ans.add(Integer.toString(num));
			}
		}

		return ans;
	}

	public java.util.List<String> fizzBuzz2(int n) {
		// ans list
		java.util.List<String> ans = new java.util.ArrayList<String>();

		for (int num = 1; num <= n; num++) {

			boolean divisibleBy3 = (num % 3 == 0);
			boolean divisibleBy5 = (num % 5 == 0);

			String numAnsStr = "";

			if (divisibleBy3) {
				// Divides by 3, add Fizz
				numAnsStr += "Fizz";
			}

			if (divisibleBy5) {
				// Divides by 5, add Buzz
				numAnsStr += "Buzz";
			}

			if (numAnsStr.equals("")) {
				// Not divisible by 3 or 5, add the number
				numAnsStr += Integer.toString(num);
			}

			// Append the current answer str to the ans list
			ans.add(numAnsStr);
		}

		return ans;
	}

	public java.util.List<String> fizzBuzz3(int n) {

		// ans list
		java.util.List<String> ans = new java.util.ArrayList<String>();

		// Hash map to store all fizzbuzz mappings.
		java.util.HashMap<Integer, String> fizzBizzDict = new java.util.HashMap<Integer, String>() {
			{
				put(3, "Fizz");
				put(5, "Buzz");
			}
		};

		for (int num = 1; num <= n; num++) {

			String numAnsStr = "";

			for (Integer key : fizzBizzDict.keySet()) {

				// If the num is divisible by key,
				// then add the corresponding string mapping to current
				// numAnsStr
				if (num % key == 0) {
					numAnsStr += fizzBizzDict.get(key);
				}
			}

			if (numAnsStr.equals("")) {
				// Not divisible by 3 or 5, add the number
				numAnsStr += Integer.toString(num);
			}

			// Append the current answer str to the ans list
			ans.add(numAnsStr);
		}

		return ans;
	}

	@org.junit.Test
	public void test() {
		System.out.println(fizzBuzz1(15));
		System.out.println(fizzBuzz2(15));
		System.out.println(fizzBuzz3(15));
	}
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!