LeetCode 2306, Hard. Topics: Array, Hash Table, String, Bit Manipulation, Enumeration. View on LeetCode.
Generate this problem as a practice environment: tested reference solution, 27 parametrized pytest cases, and a playground notebook:
Problem
You are given an array of strings ideas that represents a list of names to be used in the process of naming a company. The process of naming a company is as follows:
- Choose 2 distinct names from
ideas, call them ideaA and ideaB.
- Swap the first letters of
ideaA and ideaB with each other.
- If both of the new names are not found in the original
ideas, then the name ideaA ideaB (the concatenation of ideaA and ideaB, separated by a space) is a valid company name.
- Otherwise, it is not a valid name.
Return the number of distinct valid names for the company.
Examples
Constraints
- 2 <= ideas.length <= 5 * 10^4
- 1 <= ideas[i].length <= 10
- ideas[i] consists of lowercase English letters.
- All the strings in ideas are unique.
Solution
Reference implementation from solution.py on GitHub, full suite in test_solution.py:
Complexity
NeetCode All. Last modified on September 7, 2026