从Codechef:
当且仅当所有字符出现在字符串中的次数相等时,才认为字符串是 平衡的 。 给你一个字符串S; 该字符串只能包含大写英文字母。您可以多次执行以下操作(包括零次):选择一个字母,S然后用另一个大写英文字母替换。请注意,即使替换字母S多次出现,也只会替换所选字母的出现。 找到将给定字符串转换为平衡字符串所需的最少操作数。 例: 输入: ABCB 在这里,我们可以替换C为A,TO GET:,ABAB其中字符串的每个字符出现两次。 因此,最小操作数= 1。
当且仅当所有字符出现在字符串中的次数相等时,才认为字符串是 平衡的 。
给你一个字符串S; 该字符串只能包含大写英文字母。您可以多次执行以下操作(包括零次):选择一个字母,S然后用另一个大写英文字母替换。请注意,即使替换字母S多次出现,也只会替换所选字母的出现。
S
找到将给定字符串转换为平衡字符串所需的最少操作数。
例:
输入: ABCB
ABCB
在这里,我们可以替换C为A,TO GET:,ABAB其中字符串的每个字符出现两次。
C
A
ABAB
因此,最小操作数= 1。
1
如何使琴弦好?
我可以对其应用动态编程吗?
我认为您这里真的不需要动态编程。
O (length( S ))时间的一种方法:
A->1 B->2 C->1 D->0 E->0 ... Z->0
[1, 2, 1, 0, 0, ..., 0]
ABBC
[0, 0, ..., 0, 1, 1, 2]
ABDB