|
1 | 1 | # [2901.Longest Unequal Adjacent Groups Subsequence II][title]
|
2 | 2 |
|
3 |
| -> [!WARNING|style:flat] |
4 |
| -> This question is temporarily unanswered if you have good ideas. Welcome to [Create Pull Request PR](https://github.com/kylesliu/awesome-golang-algorithm) |
5 |
| -
|
6 | 3 | ## Description
|
| 4 | +You are given a string array `words`, and an array `groups`, both arrays having length `n`. |
| 5 | + |
| 6 | +The **hamming distance** between two strings of equal length is the number of positions at which the corresponding characters are **different**. |
| 7 | + |
| 8 | +You need to select the **longest subsequence** from an array of indices `[0, 1, ..., n - 1]`, such that for the subsequence denoted as `[i0, i1, ..., ik-1]` having length `k`, the following holds: |
| 9 | + |
| 10 | +- For **adjacent** indices in the subsequence, their corresponding groups are **unequal**, i.e., `groups[ij] != groups[ij+1]`, for each `j` where `0 < j + 1 < k`. |
| 11 | +- `words[ij]` and `words[ij+1]` are **equal** in length, and the **hamming distance** between them is `1`, where `0 < j + 1 < k`, for all indices in the subsequence. |
| 12 | + |
| 13 | +Return a string array containing the words corresponding to the indices **(in order)** in the selected subsequence. If there are multiple answers, return any of them. |
| 14 | + |
| 15 | +**Note**: strings in `words` may be **unequal** in length. |
7 | 16 |
|
8 | 17 | **Example 1:**
|
9 | 18 |
|
10 | 19 | ```
|
11 |
| -Input: a = "11", b = "1" |
12 |
| -Output: "100" |
13 |
| -``` |
| 20 | +Input: words = ["bab","dab","cab"], groups = [1,2,2] |
| 21 | +
|
| 22 | +Output: ["bab","cab"] |
| 23 | +
|
| 24 | +Explanation: A subsequence that can be selected is [0,2]. |
| 25 | +
|
| 26 | +groups[0] != groups[2] |
| 27 | +words[0].length == words[2].length, and the hamming distance between them is 1. |
| 28 | +So, a valid answer is [words[0],words[2]] = ["bab","cab"]. |
14 | 29 |
|
15 |
| -## 题意 |
16 |
| -> ... |
| 30 | +Another subsequence that can be selected is [0,1]. |
17 | 31 |
|
18 |
| -## 题解 |
| 32 | +groups[0] != groups[1] |
| 33 | +words[0].length == words[1].length, and the hamming distance between them is 1. |
| 34 | +So, another valid answer is [words[0],words[1]] = ["bab","dab"]. |
19 | 35 |
|
20 |
| -### 思路1 |
21 |
| -> ... |
22 |
| -Longest Unequal Adjacent Groups Subsequence II |
23 |
| -```go |
| 36 | +It can be shown that the length of the longest subsequence of indices that satisfies the conditions is 2. |
24 | 37 | ```
|
25 | 38 |
|
| 39 | +**Example 2:** |
| 40 | + |
| 41 | +``` |
| 42 | +Input: words = ["a","b","c","d"], groups = [1,2,3,4] |
| 43 | +
|
| 44 | +Output: ["a","b","c","d"] |
| 45 | +
|
| 46 | +Explanation: We can select the subsequence [0,1,2,3]. |
| 47 | +
|
| 48 | +It satisfies both conditions. |
| 49 | +
|
| 50 | +Hence, the answer is [words[0],words[1],words[2],words[3]] = ["a","b","c","d"]. |
| 51 | +
|
| 52 | +It has the longest length among all subsequences of indices that satisfy the conditions. |
| 53 | +
|
| 54 | +Hence, it is the only answer. |
| 55 | +``` |
26 | 56 |
|
27 | 57 | ## 结语
|
28 | 58 |
|
|
0 commit comments