Skip to content

数组

3138. 同位字符串连接的最小长度

- 🔑🔑 难度:Medium 中等

给你一个字符串 s ,它由某个字符串 t 和若干 t 的 同位字符串 连接而成。

请你返回字符串 t 的 最小 可能长度。

同位字符串 指的是重新排列一个单词得到的另外一个字符串,原来字符串中的每个字符在新字符串中都恰好只使用一次。

示例 1:

输入:s = "abba"

输出:2

解释:一个可能的字符串 t 为 "ba" 。

class Solution:
    def minAnagramLength(self, s: str) -> int:
        def check(k):
            for i in range(0, n, k):
                cnt1 = Counter(s[i: i + k])
                for c, v in cnt.items():
                    if cnt1[c] * (n // k) != v:
                        return False
            return True

        cnt = Counter(s)
        n = len(s)
        for i in range(1, n + 1):
            if n % i == 0 and check(i):
                return i

注意一下Counter方法的用法!返回的结构和字典类似。这个题就直接从因子出发,每次判断一个间隔内的数字是否可以用这个间隔长度的字符串进行表示。