LeetCode_412. Fizz Buzz
412. Fizz Buzz
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));
	}
}
LeetCode_412. Fizz Buzz的更多相关文章
- 【leetcode】412. Fizz Buzz
		problem 412. Fizz Buzz solution: class Solution { public: vector<string> fizzBuzz(int n) { vec ... 
- [LeetCode] Fizz Buzz 嘶嘶嗡嗡
		Write a program that outputs the string representation of numbers from 1 to n. But for multiples of ... 
- Lintcode 9.Fizz Buzz 问题
		------------------------ AC代码: class Solution { /** * param n: As description. * return: A list of s ... 
- LeetCode 412. Fizz Buzz
		Problem: Write a program that outputs the string representation of numbers from 1 to n. But for mult ... 
- LeetCode Fizz Buzz
		原题链接在这里:https://leetcode.com/problems/fizz-buzz/ 题目: Write a program that outputs the string represe ... 
- Fizz Buzz
		class Solution { public: /** * param n: As description. * return: A list of strings. */ vector<st ... 
- LintCode (9)Fizz Buzz
		下面是AC代码,C++风格: class Solution { public: vector<string> fizzBuzz(int N) { vector<string> ... 
- [重构到模式-Chain of Responsibility Pattern]把Fizz Buzz招式重构到责任链模式
		写一段程序从1打印到100,但是遇到3的倍数时打印Fizz,遇到5的倍数时打印Buzz,遇到即是3的倍数同时也是5的倍数时打印FizzBuzz.例如: 1 2 Fizz 4 Buzz Fizz 7 8 ... 
- Swift完成fizz buzz test
		看到一篇文章上说,很多貌似看过很多本编程书的童鞋连简单的fizz buzz测试都完不成. 不知道fizz buzz test为何物的,建议自行搜之. 测试要求是,编写满足以下条件的代码: Write ... 
随机推荐
- Python 爬虫js加密破解(三) 百度翻译 sign
			第一步: 模拟抓包分析加密参数 第二步: 找到加密字段 调试出来的sign和抓取得到的数据一致,都是 275626.55195 第三部: 分析js加密方法 第四部:运行js代码: 仅供交流学习使用 
- 在Windows10系统下安装Oracle 11g数据库
			在Windows10系统下安装Oracle 11g数据库 https://blog.csdn.net/wei1992_6/article/details/60054727 
- postgresql从库提升为主库
			一.停主库 1.查看当前连接 select pid,datname,usename,client_addr,client_port, application_name from pg_stat_act ... 
- python中的object
			继承 object 类的是新式类,不继承 object 类的是经典类,在 Python 2.7 里面新式类和经典类在多继承方面会有差异: class A: def foo(self): print(' ... 
- 【NOIP2015】斗地主 D1 T3 及 增强版 (送命题)
			恶心送命模拟题 暴搜顺子,DP预处理剩下的. 由于官方数据太水,很多情况没有讨论的都能过普通版本,想要测试自己代码正确性的同学们可以交交这道题,有很多dalao给出了hack数据 : Luogu P2 ... 
- WinDbg常用命令系列---清屏
			.cls (Clear Screen) .cls命令清除调试器命令窗口显示. .cls 环境: 模式 用户模式下,内核模式 目标 实时. 崩溃转储 平台 全部 清屏前 清屏后 
- win7虚拟机安装
			https://blog.csdn.net/qq_16503045/article/details/81904986 iso下载地址 https://msdn.itellyou.cn/ 
- 【批处理】choice命令,call 命令,start 命令,rem
			[1]choice命令简介 使用此命令可以提示用户输入一个选择项,根据用户输入的选择项再决定执行具体的过程. 使用时应该加/c:参数,c: 后应写提示可输入的字符或数字,之间无空格.冒号是可选项. 使 ... 
- snmp-get
			使用mibbroser可以连接到监控主机,可以获取主机mib信息 使用walk出的oid就可以获取到对应的值, 使用 -O fn 可以将返回的字符创形式的键改为数字型oid oid还有一种字符串的形式 ... 
- 65、Spark Streaming:数据接收原理剖析与源码分析
			一.数据接收原理 二.源码分析 入口包org.apache.spark.streaming.receiver下ReceiverSupervisorImpl类的onStart()方法 ### overr ... 
