Watch 7 video solutions for Weighted Word Mapping, a easy level problem involving Array, String, Simulation. This walkthrough by CodingHelp has 252 views views. Want to try solving it yourself? Practice on FleetCode or read the detailed text solution.
You are given an array of strings words, where each string represents a word containing lowercase English letters.
You are also given an integer array weights of length 26, where weights[i] represents the weight of the ith lowercase English letter.
The weight of a word is defined as the sum of the weights of its characters.
For each word, take its weight modulo 26 and map the result to a lowercase English letter using reverse alphabetical order (0 -> 'z', 1 -> 'y', ..., 25 -> 'a').
Return a string formed by concatenating the mapped characters for all words in order.
Example 1:
Input: words = ["abcd","def","xyz"], weights = [5,3,12,14,1,2,3,2,10,6,6,9,7,8,7,10,8,9,6,9,9,8,3,7,7,2]
Output: "rij"
Explanation:
"abcd" is 5 + 3 + 12 + 14 = 34. The result modulo 26 is 34 % 26 = 8, which maps to 'r'."def" is 14 + 1 + 2 = 17. The result modulo 26 is 17 % 26 = 17, which maps to 'i'."xyz" is 7 + 7 + 2 = 16. The result modulo 26 is 16 % 26 = 16, which maps to 'j'.Thus, the string formed by concatenating the mapped characters is "rij".
Example 2:
Input: words = ["a","b","c"], weights = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
Output: "yyy"
Explanation:
Each word has weight 1. The result modulo 26 is 1 % 26 = 1, which maps to 'y'.
Thus, the string formed by concatenating the mapped characters is "yyy".
Example 3:
Input: words = ["abcd"], weights = [7,5,3,4,3,5,4,9,4,2,2,7,10,2,5,10,6,1,2,2,4,1,3,4,4,5]
Output: "g"
Explanation:βββββββ
The weight of "abcd" is 7 + 5 + 3 + 4 = 19. The result modulo 26 is 19 % 26 = 19, which maps to 'g'.
Thus, the string formed by concatenating the mapped characters is "g".
Constraints:
1 <= words.length <= 1001 <= words[i].length <= 10weights.length == 261 <= weights[i] <= 100words[i] consists of lowercase English letters.Problem Overview: You are given words and a predefined weight mapping for characters. Each wordβs value is determined by summing the weights of its characters. The task is to simulate this mapping and compute the resulting weighted values for the given words or validate the mapping behavior.
Approach 1: Direct Simulation (O(n * m) time, O(1) space)
The straightforward way is to simulate the mapping exactly as defined. Store the character weights in an array of size 26 so each lookup takes constant time. Iterate through every word, and for each character, fetch its weight and add it to a running sum. If the problem requires comparing or storing results, maintain a simple array or hash map of computed weights. The algorithm processes n words with average length m, giving O(n * m) time complexity and O(1) auxiliary space since the weight table size is fixed.
Approach 2: Precomputed Character Lookup Table (O(n * m) time, O(1) space)
If the weight mapping is given in another structure (such as pairs or a dictionary), first convert it into a fixed-size lookup table indexed by character. This removes repeated hash lookups during processing. After building the table, iterate through each word and accumulate weights using simple array indexing. This approach still runs in O(n * m) time but improves constant factors and keeps memory usage minimal. The logic is essentially a lightweight simulation combined with basic string traversal.
Approach 3: Aggregation with Hash Map (O(n * m) time, O(k) space)
When the task requires grouping or tracking words by their computed weight, store results in a hash map where the key is the computed weight and the value contains the corresponding words or counts. Each word is processed once, and its weight is calculated using the same character iteration strategy. The extra map introduces O(k) space where k is the number of distinct weight values. This approach appears in problems that combine array processing with string evaluation.
Recommended for interviews: The direct simulation with a constant-size weight lookup table is the expected solution. It is simple, efficient, and easy to reason about. Interviewers mainly check whether you model the mapping correctly and avoid unnecessary overhead. Explaining the brute-force simulation first shows understanding of the problem, while implementing the optimized lookup table demonstrates clean engineering thinking.
| Approach | Time | Space | When to Use |
|---|---|---|---|
| Direct Simulation | O(n * m) | O(1) | Best for straightforward evaluation of word weights using a fixed character mapping |
| Precomputed Character Lookup Table | O(n * m) | O(1) | When the weight mapping is provided in a non-indexed format and needs faster repeated lookups |
| Aggregation with Hash Map | O(n * m) | O(k) | When grouping or counting words by their computed weight values |