8kyu Duck Duck Goose

题目:

The objective of ‘Duck, duck, goose‘ is to walk in a circle, tapping on each player‘s head until one is finally chosen.

Task: Given an array of Player objects (an array of associative arrays in PHP) and an index (1-based), return the name of the chosen Player.

Example:

duck_duck_goose([a, b, c, d], 1) should return a.name
duck_duck_goose([a, b, c, d], 5) should return a.name
duck_duck_goose([a, b, c, d], 4) should return d.name
// PHP only
duck_duck_goose([$a, $b, $c, $d], 1); // => $a["name"]
duck_duck_goose([$a, $b, $c, $d], 5); // => $a["name"]
duck_duck_goose([$a, $b, $c, $d], 4); // => $d["name"]

答案:

时间: 2024-10-24 07:10:57

8kyu Duck Duck Goose的相关文章

什么是鸭子类型(duck typing)

"当看到一只鸟走起来像鸭子.游泳起来像鸭子.叫起来也像鸭子,那么这只鸟就可以被称为鸭子." 我们并不关心对象是什么类型,到底是不是鸭子,只关心行为. 比如在python中,有很多file-like的东西,比如StringIO,GzipFile,socket.它们有很多相同的方法,我们把它们当作文件使用. 鸭子类型在动态语言中经常使用,非常灵活,使得python不想java那样专门去弄一大堆的设计模式. 下面例子用duck typing来实现多态. #coding=utf-8 class

面向对象-duck

package oo; public interface Duck {    public void fly(); public void quack();} package oo; public class MallardDuck implements Duck {    public void fly()    {        System.out.println("I'm flying");    }    public void quack()    {        Sys

Java 设计模式 -- 复合模式之一

关于复合模式: 在形式上,复合模式确实是多个模式的组合,但满足了这一条并不一定是复合模式,注意它的定义:将多个模式结合起来形成一个"框架",以解决一般性问题             一提到"框架",可能最容易联想到的就是MVC吧,不过MVC确实是一个经典的复合模式 在进去MVC模式之前 先看一个简单的例子: 例子来自Headfrist 设计模式中的经典鸭鸣:有四种鸭鸣, 绿头鸭,叫声 Quack 红头鸭,叫声 Quack 鸭鸣器,叫声 Kwak 橡皮鸭,叫声 Squ

Headfirst设计模式的C++实现——复合模式

observer.h 1 #ifndef _OBSERVER_H_ 2 #define _OBSERVER_H_ 3 4 #include <string> 5 class Observer { 6 public: 7 virtual void update(const std::string &type) = 0; 8 }; 9 #endif quack_observable.h 1 #ifndef _QUACK_OBSERVABLE_H_ 2 #define _QUACK_OBSE

ES6新特性:Javascript中的Reflect对象

Reflect介绍: Reflect这个对象在我的node(v4.4.3)中还没有实现, babel(6.7.7)也没有实现 ,新版本的chrome是支持的, ff比较早就支持Proxy和Reflect了,要让node支持Reflect可以安装harmony-reflect ; Reflect不是构造函数, 要使用的时候直接通过Reflect.method()调用, Reflect有的方法和Proxy差不多, 而且多数Reflect方法原生的Object已经重新实现了. 什么要使用Reflect

面向对象之多态以及魔法函数

一:多态 [1]基础概念 (1)基础概念: (1)一种事物拥有多种形态: 例如:水--->气态--->液态--->固态 (2)在python中是多个对象可以相应同一种方法 产生不同的结果 PS:多态不是一种语法 而是一种特殊的状态 特性 即多个对象有相同的使用方法 例如: # 案例一 class Chicken: def span(self): print('下鸡蛋') class Duck: def span(self): print('下鸭蛋') class Goose: def s

java设计模式(六)策略模式

策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们可以相互替换,让算法独立于使用它的客户而独立变化,具体应用场景如第三方支付对接不同银行的算法. 要点:1)抽象策略角色    2)具体策略角色:包装相关算法和行为 3)环境角色:持有一个策略类的引用,最终给客户端调用 1.抽象策略接口 public interface SwimmingStratege { public void swimming(); } 2.具体策略角色SwimmingWithFoot public class S

HeadFirstJava——12_序列化和文件的输入/输出

存储对象状态的方式: 1 序列化(若只有自己写的程序会用到这些数据) 创建一个文件,将被序列化的对象写入文件中,之后可在程序中到文件中读取序列化的对象并将其转换为状态: 注意:以文本文件形式阅读是无意义的: 2 写入纯文本文件中(若数据需要被其他程序引用) 创建一个文本文件,用其他程序可以解析的特殊字符写到文件中,每行写入一个对象的状态,用逗号/制表符分隔: 一.序列化 1 将序列化对象写入文件中 a 创建FileOutputStream 若MyGame.ser文件不存在,则自动被创建: 创建存

第3章 最小化Spring XML配置

目录: 自动装配Bean属性 使用注解装配 自动检测Bean 使用Spring基于Java的配置 自动装配Bean属性 四种类型的自动装配: 1 byName 通过id的名字与属性的名字进行判断,要保证Bean实例中属性名字与该装配的id名字相同. 2 byType 通过类型确定装配的bean,但是当存在多个类型符合的bean时,会报错. 3 contructor 在构造注入时,使用该装配方式,效果如同byType. 4 autodetect 首先尝试使用constructor进行自动装配.如果