作者mecumi ()
看板Soft_Job
标题Re: [心得] 学界转业界...google面试洗脸心得
时间Tue Apr 18 12:53:46 2017
原文恕删,
推文我整理了一下, 大概就是这三个版本,
我个人比较偏爱版本三,
原因是因为一个月後我比较看得懂这段程式码的目的是啥XD
较不爱版本二的原因是result用字串串接的话, 会相依於上一个判断的结果,
要把全部程式码看完才能知道result是啥,
万一条件一多, 程式码只有难读而已,
所以当我知道google面试官偏爱版本二时,
有点不太理解XD
# 版本一
for(int i = 1; i<= n; i++){
if(i%15 == 0){
System.out.println("FizzBuzz");
continue;
}
if(i%3 == 0){
System.out.println("Fizz");
continue;
}
if(i%5 == 0){
System.out.println("Buzz");
continue;
}
System.out.println(i);
}
# 版本二
for(int i = 1; i <= n; i++){
String result = "";
if(i%3 == 0) result += "Fizz";
if(i%5 == 0) result += "Buzz";
if(result.length() > 0) System.out.println(result);
else System.out.println(i);
}
# 版本三
for(int i = 1; i<= n; i++){
if(i%15 == 0){
System.out.println("FizzBuzz");
} else if(i%3 == 0){
System.out.println("Fizz");
} else if(i%5 == 0){
System.out.println("Buzz");
} else {
System.out.println(i);
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.240.88.156
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1492491228.A.BF2.html
1F:→ pttworld: 没发现版本三不一样吗 04/18 13:02
2F:→ javatea: 有时候面试官心里会有些偏好 不一定正确 这很正常 04/18 13:13
3F:→ Lordaeron: 照题目: i=45 时, Buzz Fizz FizzBuzz 都要印 04/18 13:13
4F:推 Cauchy2008: 抱歉,是我没翻译好...45时,印FizzBuzz就好 04/18 13:16
5F:→ Cauchy2008: 刚查到Python 霸气一行解: 04/18 13:17
6F:→ Cauchy2008: return[i%3/2*'Fizz'+i%5/4*'Buzz'or`i+1`for i in ra 04/18 13:17
7F:→ Cauchy2008: nge(n)] 04/18 13:17
8F:→ Cauchy2008: 但int 乘 String 这招在Java就无法用了 04/18 13:18
9F:推 vfgce: 呃,那种程式写出来玩可以,但半年後你还记得这东西在干嘛 04/18 13:33
10F:推 bben900911: leetcode里的fizzbuzz并没有15的倍数这一项要求 04/18 13:53
11F:→ bben900911: 单纯的问3的倍数 5的倍数 两者的公倍数而已喔 04/18 13:53
12F:→ bben900911: 还是google问的题目有确实要求15这点? 04/18 13:53
13F:→ magic704226: 这题就 leetcode的 04/18 14:38
14F:→ ssccg: 今天这问题的核心不就是全条件完才知道结果是啥? 04/18 15:50
15F:→ ssccg: 3的倍数印Fizz、5的倍数印Buzz,这两个条件是独立的 04/18 15:51
16F:→ ssccg: 如果同时满足两个条件,自然两个都做,只有版本二满足这原 04/18 15:51
17F:→ ssccg: 则,版本一三都是hardcode 15的倍数这个没必要的条件 04/18 15:52
18F:→ ssccg: 如果条件多7倍数印Woof,不就要再i%105、i%21、i%35、i%7? 04/18 15:55
19F:→ ssccg: 但是版本二就是加一行而已 04/18 15:56
20F:推 loxyz: 推 04/18 16:51
21F:→ ACMANIAC: 推 楼楼上 04/18 19:09
22F:推 Hevak: ssccg 大解说得好详细@@ 04/18 19:17
23F:推 lgates: 推下ssccg 谁说的对啊 04/18 19:49
24F:推 Cauchy2008: 推ssccg 懂了!原来这题的point在这...leetcode 讨论 04/18 21:04
25F:→ Cauchy2008: 区很多都是if else的解,重点没被突显出来 04/18 21:04
26F:推 stosto: 有一种是效率问题 有一种是维护问题 都没人用物件导向解 04/19 02:25
27F:推 lgates: 修一下我的推文..多打个 "谁",现在才看到 04/19 13:04
28F:推 meteor260: 要看要做的事情逻辑本身, 若是15倍数印FizzBuzz真的是 04/19 16:20
29F:→ meteor260: 因同时是三和五倍数, 则做法二, 若非则做法三 04/19 16:21
30F:推 meteor260: 自作解释的话很容易会犯下智障测验的错误, 到时打掉重 04/19 16:24
31F:→ meteor260: 练 04/19 16:24
32F:推 meteor260: 2?2=4 中间究竟是不是加号呢 04/19 16:32
33F:→ ssccg: 其实原题目应该就没有提到15的倍数,这题最先是要考知不知 04/19 19:35
34F:→ ssccg: 道用ifelse写法要把需要&&的条件放在前面的基本逻辑 04/19 19:38
35F:→ ssccg: 版本二是延伸问题了 04/19 19:38
36F:推 ntddt: 推居然能用ptt热烈讨论code真是厉害 04/19 23:07
37F:推 vn509942: 开心 04/19 23:42
38F:推 janbarry168: 推ssccg大 04/20 00:13
39F:推 cutekid: 推ssccg,除了版本二,其它的 switch case 都是 2^N 04/20 00:31
41F:→ cha122977: 我以为乡民通常会呛这题有什麽好问的XD 04/20 08:52
42F:→ bemyself: 这板是一堆非资工本科系的吗... 04/20 09:37
43F:推 QQaRed: 学习了... 04/20 20:39
44F:推 Csongs: 正想回文,推文有人说完惹 04/21 08:51
45F:推 stosto: 写这题用神经网路也太靠杯了 04/22 17:09
46F:推 truthmanman: String s = i % 15 == 0 ? "fizzbuzz" : (i % 3 == 0 05/01 00:35
47F:→ truthmanman: ? "fizz" : (i % 5 == 0 ? "buzz" : "" + i)); 05/01 00:36