首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >FizzBuzz难题

FizzBuzz难题
EN

Stack Overflow用户
提问于 2018-02-08 09:56:41
回答 2查看 369关注 0票数 4

FizzBuzz问题是一个非常经典的采访问题,在世界各地的多次采访中被问到。用不同的语言做这件事有很多种方法。但在大多数情况下,如果我们深入到Java8领域,如果loops.There是很好的方法,那么它肯定涉及使用3或4 if/else。但我的主要问题是:

  • 这个著名问题背后的逻辑是什么?
  • 当面试官问这个问题时,他们会在面试者身上寻找什么?
  • 我们知道如何编码基本的东西吗?
  • 他们想看看我们的编码风格吗?
  • 他们在期待这个问题的优化吗?很难尝试优化代码。

下面是一个关于它的数学观点:

如果循环计数= 100

%15计算= 100

%3计算= 100 -6= 94

%5计算= 100 - 33 = 67

总模量计算= 261 (100 + 94 + 67)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-08 10:13:54

这个著名问题背后的逻辑是什么?

这是真正地清除那些不知道自己在做什么的人。

当面试官问这个问题时,他们会在面试者身上寻找什么?

最重要的是,对我来说,这是一个对话的开端。例如,您可以要求人们解释他们的代码为什么选择x % 15 == 0而不是x % 3 == 0 && x % 5 == 0

我们知道如何编码基本的东西吗?

是,条件;循环;运算符

他们想看看我们的编码风格吗?

是的,这可能是关于优化或仅仅是对话。面试的过程是了解你面前的人。(这是双向的)。

他们在期待这个问题的优化吗?

这取决于,我认为if elseif和不同的循环方式是结合在一起的。一般来说,每个面试官都应该在这个问题上发表自己的观点。例如,在C#中,我会将我的测试设置为包含一个内存管理元素,并期望使用yield return

你可能想读杰夫·阿特伍德的“发表关于这个主题的文章”。

票数 2
EN

Stack Overflow用户

发布于 2018-06-06 15:21:19

最近我在面试中被问到这个问题,我没有花太多时间思考,只是写了一个简单的java方法,取整数并返回适当的Fizz Buzz单词,我问面试官,程序的预期变化是什么,他说了另一个条件,如数字可以被7打印‘7’除以,所以我重构了一点,最后的答案如下

代码语言:javascript
运行
复制
 public static void main(String[] args) {

    Function<Integer,String> fizz = e->e%3==0?"FIZZ":"";
    Function<Integer,String> Buzz = e->e%5==0?"BUZZ":"";
    Function<Integer,String> fizzBuzz = e->e%3==0 && e% 5==0?"FIZZBUZZ":"";
    Function<Integer,String> seven = e->e%7==0?"SEVEN":"";
    List<Function<Integer, String>> predicateList = List.of(fizz,Buzz,fizzBuzz,seven);
    IntStream.range(0,100).boxed()
                        .map(e->applyFizzBuzzFunc(e,predicateList))
                        .forEach(System.out::println);
}

/**
 * Executes the list in the given order 
 */
private static String applyFizzBuzzFunc(Integer e, List<Function<Integer, String>> predicateList) {
    return predicateList.stream()
                        .map(f -> f.apply(e))
                        .filter(s -> !"".equals(s))
                        .findFirst()
                        .orElse(String.valueOf(e));
}

我可以看出,面试官对这个解决方案印象深刻。在我看来,要和面试官互动,试着理解他到底在检查什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48682502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档