给你两个字符串 s
和 t
(它们互为字母异位词),以及一个整数 k
。
你的任务是判断是否可以将字符串 s
分割成 k
个等长的子字符串,然后重新排列这些子字符串,并以任意顺序连接它们,使得最终得到的新字符串与给定的字符串 t
相匹配。
如果可以做到,返回 true
;否则,返回 false
。
字母异位词 是指由另一个单词或短语的所有字母重新排列形成的单词或短语,使用所有原始字母恰好一次。
子字符串 是字符串中的一个连续 非空 字符序列。
示例 1:
输入: s = "abcd", t = "cdab", k = 2
输出: true
解释:
s
分割成 2 个长度为 2 的子字符串:["ab", "cd"]
。["cd", "ab"]
,然后连接它们得到 "cdab"
,与 t
相匹配。示例 2:
输入: s = "aabbcc", t = "bbaacc", k = 3
输出: true
解释:
s
分割成 3 个长度为 2 的子字符串:["aa", "bb", "cc"]
。["bb", "aa", "cc"]
,然后连接它们得到 "bbaacc"
,与 t
相匹配。示例 3:
输入: s = "aabbcc", t = "bbaacc", k = 2
输出: false
解释:
s
分割成 2 个长度为 3 的子字符串:["aab", "bcc"]
。t = "bbaacc"
,所以输出 false
。
提示:
1 <= s.length == t.length <= 2 * 105
1 <= k <= s.length
s.length
能被 k
整除。s
和 t
仅由小写英文字母组成。s
和 t
互为字母异位词。s
into k
equal-sized substrings, use a map to track frequencies, and check if rearranging them can form t
.