困难
给你一个字符串数组 words 和一个整数 k。
对于范围 [0, words.length - 1] 中的每个下标 i,在移除第 i 个元素后的剩余数组中,找到任意 k 个字符串(k 个下标 互不相同)的 最长公共前缀 的 长度。
返回一个数组 answer,其中 answer[i] 是 i 个元素的答案。如果移除第 i 个元素后,数组中的字符串少于 k 个,answer[i] 为 0。
一个字符串的 前缀 是一个从字符串的开头开始并延伸到字符串内任何位置的子字符串。
一个 子字符串 是字符串中一段连续的字符序列。
示例 1:
输入: words = ["jump","run","run","jump","run"], k = 2
输出: [3,4,4,3,4]
解释:
- 移除下标 0 处的元素
"jump":words变为:["run", "run", "jump", "run"]。"run"出现了 3 次。选择任意两个得到的最长公共前缀是"run"(长度为 3)。
- 移除下标 1 处的元素
"run":words变为:["jump", "run", "jump", "run"]。"jump"出现了 2 次。选择这两个得到的最长公共前缀是"jump"(长度为 4)。
- 移除下标 2 处的元素
"run":words变为:["jump", "run", "jump", "run"]。"jump"出现了 2 次。选择这两个得到的最长公共前缀是"jump"(长度为 4)。
- 移除下标 3 处的元素
"jump":words变为:["jump", "run", "run", "run"]。"run"出现了 3 次。选择任意两个得到的最长公共前缀是"run"(长度为 3)。
- 移除下标 4 处的元素
"run":words变为:["jump", "run", "run", "jump"]。"jump"出现了 2 次。选择这两个得到的最长公共前缀是"jump"(长度为 4)。
示例 2:
输入: words = ["dog","racer","car"], k = 2
输出: [0,0,0]
解释:
- 移除任何元素的结果都是 0。
提示:
1 <= k <= words.length <= 1051 <= words[i].length <= 104words[i]由小写英文字母组成。words[i].length的总和小于等于105。