m******9 发帖数: 968 | 1 Design a Card Deck,并且写shuffle function,
我之前的一次onsite,class写的不周全,当时shuffle也没写出来,直接因为这个而
fail掉了,后来的面试又被问到过2次。
把它贴出来,我也搜了一个答案出来,不知是否很好,大家讨论一下,有没有更好的解
决方法。
enum Suit { SPADES, CLUBS, HEARTS, DIAMONDS, };
enum Face { ACE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK,
QUEEN, KING, };
class Card {
public:
Card(Suit suit, Face face) : suit(suit), face(face) {}
Card(const Card& orig) : suit(orig.suit), face(orig.face) {}
Suit getSuit() const { return suit; }
Face getFace() const { return fa | s*****r 发帖数: 773 | 2 两个问题
1 你以前写的不周全, 不周全在哪儿?
2 为什么Card还要定义一个private的ctor啊,不要可以么?
JACK,
【在 m******9 的大作中提到】 : Design a Card Deck,并且写shuffle function, : 我之前的一次onsite,class写的不周全,当时shuffle也没写出来,直接因为这个而 : fail掉了,后来的面试又被问到过2次。 : 把它贴出来,我也搜了一个答案出来,不知是否很好,大家讨论一下,有没有更好的解 : 决方法。 : enum Suit { SPADES, CLUBS, HEARTS, DIAMONDS, }; : enum Face { ACE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, : QUEEN, KING, }; : class Card { : public:
| m******9 发帖数: 968 | 3 这段代码是别人写的,我是在网上搜出来的,那个private ctor只是将default ctor封
起来而已,没别的意思。
我感觉这是个open questions,或许可以有很多写法,
我当时比较紧张,还没想彻底,就开始写了,边写边想,结果我写的越多,他就问的越
多。反正当时我比较乱。
大家有没有好的答案呀? 求教
【在 s*****r 的大作中提到】 : 两个问题 : 1 你以前写的不周全, 不周全在哪儿? : 2 为什么Card还要定义一个private的ctor啊,不要可以么? : : JACK,
| r**u 发帖数: 1567 | 4 I think private的ctor prevents you from creating a card without initializing
it.
【在 s*****r 的大作中提到】 : 两个问题 : 1 你以前写的不周全, 不周全在哪儿? : 2 为什么Card还要定义一个private的ctor啊,不要可以么? : : JACK,
| m******9 发帖数: 968 | 5 嗯,没错
你觉得这个design该怎么写呀? 谢谢
initializing
【在 r**u 的大作中提到】 : I think private的ctor prevents you from creating a card without initializing : it.
| k***e 发帖数: 556 | 6 很多公司问这种问题吗?
是不是只有amazon
JACK,
【在 m******9 的大作中提到】 : Design a Card Deck,并且写shuffle function, : 我之前的一次onsite,class写的不周全,当时shuffle也没写出来,直接因为这个而 : fail掉了,后来的面试又被问到过2次。 : 把它贴出来,我也搜了一个答案出来,不知是否很好,大家讨论一下,有没有更好的解 : 决方法。 : enum Suit { SPADES, CLUBS, HEARTS, DIAMONDS, }; : enum Face { ACE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, : QUEEN, KING, }; : class Card { : public:
| m*****f 发帖数: 1243 | 7 My shuffle
void Shuffle() {
int n = "size of the deck";
for (int i = n-1; i >= 0; - -i) {
swap(card[i], card[bigrand() % (n- -)]);
}
} | m*****f 发帖数: 1243 | 8 ft, it's not permutation just shuffle... | g*******y 发帖数: 1930 | 9 agree. Don't think it's necessary to modify the code even if there's dup.
【在 m*****f 的大作中提到】 : ft, it's not permutation just shuffle...
| m******9 发帖数: 968 | 10 大家给design的方法做点点评吧,关于shuffle网上可以找到固定的答案了,可是
design似乎没个明确的说法。
any suggestions for OO design? | H*M 发帖数: 1268 | 11 脑子短路了...:(
【在 m*****f 的大作中提到】 : ft, it's not permutation just shuffle...
| m*****k 发帖数: 64 | 12 how to implement Joker in this class?
JACK,
【在 m******9 的大作中提到】 : Design a Card Deck,并且写shuffle function, : 我之前的一次onsite,class写的不周全,当时shuffle也没写出来,直接因为这个而 : fail掉了,后来的面试又被问到过2次。 : 把它贴出来,我也搜了一个答案出来,不知是否很好,大家讨论一下,有没有更好的解 : 决方法。 : enum Suit { SPADES, CLUBS, HEARTS, DIAMONDS, }; : enum Face { ACE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, : QUEEN, KING, }; : class Card { : public:
|
|