- Notifications
You must be signed in to change notification settings - Fork 266
Equivalent Species Pairs
LeWiz24 edited this page Sep 27, 2024 · 5 revisions
Understand what the interviewer is asking for by using test cases and questions about the problem.
- Q:
- What is the desired outcome?
- To determine the number of equivalent species pairs in a list of observed species pairs.
- What is the desired outcome?
- Q:
- What input is provided?
- A list of lists
species_pairs
where each sublist contains two species.
- A list of lists
- What input is provided?
Plan the solution with appropriate visualizations and pseudocode.
General Idea: Normalize each species pair by sorting it, then count the occurrences of each normalized pair. Use this to calculate the number of equivalent pairs.
1) Initialize a dictionary `count` to store occurrences of each normalized species pair. 2) Normalize each pair by sorting it, then update the count. 3) Calculate the number of equivalent pairs using the formula `c * (c - 1) // 2` for each pair count `c`. 4) Return the total number of equivalent pairs.
Hint: For a species pair that appears n
times, the number of equivalent pairs that can be formed is given by the formula the formula : c * (c - 1) // 2
- Not correctly normalizing the species pairs before counting.
def num_equiv_species_pairs(species_pairs): # Dictionary to count occurrences of each normalized species pair count = {} # Normalize each species pair and count its occurrences for pair in species_pairs: normalized = tuple(sorted(pair)) if normalized in count: count[normalized] += 1 else: count[normalized] = 1 # Calculate the number of equivalent pairs pairs = 0 for c in count.values(): if c > 1: pairs += c * (c - 1) // 2 return pairs