将字符串拆分为 k 个不同分区的 Python 程序

假设我们有一个字符串 s 和一个值 k。k 的值是 s 长度的因子,比如长度是 n。我们可以将 s 拆分为 n/k 个不同的子串,称为 t_i,大小为 k。然后使用这些 t_i 使 u_i 使得

  • u_i 中的字符是 t_i 中字符的子序列

  • 将从这些字符串中删除任何重复字符,使得 u_i 中每个字符的频率为 1

我们必须找到这些 u_i 字符串

所以,如果输入像 s = "MMPQMMMRM" k = 3,那么输出将是 ["MP", "QM", "MR"] 因为 s 的大小是 9,而 k 是 3,所以 9/ 3 = 3。字符串是 MMP、QMM 和 MRM,但由于我们不支持重复字符,因此它们将是 MP、QM 和 MR。

示例

让我们看下面的实现来更好地理解

def solve(s, k):

   i = 0

   ret = []

   mp, to_print = {}, ""

   while i < len(s):

      if i % k == 0 and i != 0:

         ret.append(to_print)

         mp, to_print = {}, ""

      if s[i] not in mp.keys():

         mp[s[i]] = 0

         to_print += s[i]

      i += 1

   ret.append(to_print)

   return ret

s = "MMPQMMMRM"

k = 3

print(solve(s, k))

输入

"MMPQMMMRM", 3
输出结果
['MP', 'QM', 'MR']

以上是 将字符串拆分为 k 个不同分区的 Python 程序 的全部内容, 来源链接: utcz.com/z/359567.html

回到顶部