问题: 给定长度为l且为整数k的非空字符串str,重新排列 字符串使得相同的字符至少距离k 彼此。万一,你不可能用长度l来做 可以插入空格并返回最小空的排列 空格。
E.x。 str =“aabbcc”,k = 3
结果:“abcabc”
贪婪的想法是:
1)按频率对字符进行排序,并采用最高频率 第一名的角色。采取下一个可用的最高频率 第二名的角色等......
E.x。对于“aabbcc”,k = 3 (字符,频率) (a2) (B,2) (C,2)
选择一个。然后选择b,然后选择c,选择a,选择b,选择c
我们如何证明这一点?
答案 0 :(得分:0)
我们可以想到当我们无法选择任何字符时的情况,那就是当字符的种类少于k但我们仍然拥有频率高于1的字符时。避免这种情况的最佳方法是显然总是选择频率最高的字符。