gpt4 book ai didi

java - 如何随机排列没有两个重复项的字符数组?

转载 作者:搜寻专家 更新时间:2023-11-01 02:39:33 24 4
gpt4 key购买 nike

<分区>

我在面试中被问到这个问题:

How to shuffle a character array with no two duplicates next to each other?

我想出的算法是:

  1. 有一个 HashMap 字符,字符对的出现次数。通过这个找到重复元素与唯一元素的数量。
  2. 如果重复 > 唯一,则不能形成没有 2 的打乱数组彼此相邻的重复元素 (?)
  3. 如果唯一 >= 重复,则有 2 个堆栈 - 1 个包含唯一字符和一个包含重复字符的字符。构建以从唯一堆栈中弹出元素的方式生成数组首先,然后从重复堆栈中弹出一个元素。重复

例如:

[a,b,b,c] shuffled array with above algorithm - [a,b,c,b];

[b,b,b,c] unique < duplicate return error

但我很确定我使逻辑过于复杂了。有没有更简单、更简单的方法来做到这一点?

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