LeetCode Question · Jul 2024 · Los Angeles

Bloomberg | Online | Deck of Cards Shuffling

1 upvote 891 views 5 replies

Question Details

Problem: Deck of Cards Shuffling #### Description You are given a list containing multiple decks of cards, where each deck consists of 52 unique cards. The total number of cards, n, is...

Full Details

Problem: Deck of Cards Shuffling

Description

You are given a list containing multiple decks of cards, where each deck consists of 52 unique cards. The total number of cards, n, is guaranteed to be a multiple of 52. Each card is represented as a structure containing two fields: suit and rank. Write a function to shuffle all the cards together using a custom algorithm that mimics manual shuffling.

Constraints

  • The total number of cards, n, is guaranteed to be a multiple of 52, indicating that there are multiple decks.
  • Each card has a suit and a rank.
  • Suits are one of "Hearts", "Diamonds", "Clubs", "Spades".
  • Ranks are one of "A", "2", "3", ..., "10", "J", "Q", "K".

Function Signature

cpp
struct Card {
 std::string suit;
 std::string rank;
};

std::list<Card> shuffleAllDecks(const std::list<Card>& all_decks);

Input

The input all_decks is a std::list of Card structures containing one or more decks of cards. All the decks are combined into a single list for shuffling.

Output

Return a std::list<Card> where all the cards from the input have been shuffled together.

Example

Input:

cpp
std::list<Card> all_decks = {
 {"Hearts", "A"}, {"Hearts", "2"}, {"Hearts", "3"}, ..., {"Spades", "K"},
 {"Hearts", "A"}, {"Hearts", "2"}, {"Hearts", "3"}, ..., {"Spades", "K"}
};

Output

cpp
std::list<Card> shuffledDecks = shuffleAllDecks(all_decks);
//

**Example** output (shuffled order):
// [
// {"Diamonds", "J"}, {"Hearts", "3"}, {"Clubs", "A"}, ..., {"Hearts", "4"}
//]

Explanation

The function should simulate the shuffling of all cards combined by thoroughly mixing the cards from all decks together, mimicking the randomness of manual shuffling.

About This Question

This is a reported interview question from a bloomberg interview for a swe role reported in 2024.

It covers the following topics: Strings .

Topics