Problem · Simulation

Deck of Cards Shuffling

EasyBloombergOA

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

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.

Examples
01 · Example 1
all_decks = [
            {"Hearts", "A"}, {"Hearts", "2"}, {"Hearts", "3"}, ..., {"Spades", "K"},
            {"Hearts", "A"}, {"Hearts", "2"}, {"Hearts", "3"}, ..., {"Spades", "K"}
          ]
return = [
        {"Diamonds", "J"}, {"Hearts", "3"}, {"Clubs", "A"}, ...., {"Hearts", "4"}
      ]

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.

More Bloomberg problems
drafts saved locally
public String[][] shuffelAllDecks (String[][] all_decks) {
  // Write your code here:)
}
all_decks[ {"Hearts", "A"}, {"Hearts", "2"}, {"Hearts", "3"}, ..., {"Spades", "K"}, {"Hearts", "A"}, {"Hearts", "2"}, {"Hearts", "3"}, ..., {"Spades", "K"} ]
expected[ {"Diamonds", "J"}, {"Hearts", "3"}, {"Clubs", "A"}, ...., {"Hearts", "4"} ]
checking account