gpt4 book ai didi

c++ - 如何对每行字母都不同的char行进行排序?

转载 作者:行者123 更新时间:2023-12-02 10:19:39 25 4
gpt4 key购买 nike

我有11个字母:
B D A A R A R B K A A
我需要对它们进行排序,以使每个下一个字母都不同于上一个字母,例如:
B D A R A R A B A K A
我尝试这样做:

bool sort = true;
while (sort)
{
sort= false;
for (int i = 1; i <= n-1; i++)
{
if (letter[i] == letter[i + 1])
{
swap(letter[i], letter[i + 2]);
sort = true;
}
}
}

但是程序中断了。我不知道该怎么办。有人可以帮忙吗?
我仍然是初学者,所以我不知道任何高级算法

最佳答案

这是一种可能的算法:

输入:BDAARARBKAA
首先,将字母分组并按计数排序:

A 5
B 2
R 2
D 1
K 1

确保最高计数不大于 int((N+1)/2)
填写以最大的组开始的插槽,并在等号之间留一个空插槽,如下所示:
A.A.A.A.AB.

然后填写其余字母:
A.A.A.A.AB.
B R R D K

结果:
ABARARADABK

关于c++ - 如何对每行字母都不同的char行进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60777057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com