如何重新安排字符串,以便相同的字符彼此不相鄰,並且如果有很多替代的排序選項,我們將選擇按字母順序排序的字符串?如何重新排列字符串以使相同的字符不相鄰?
即
AAABBBB -> BABABAB
AAABBB -> ABABAB
BCDDEEEF -> BCEDEDEF
BACHH -> ABHCH
僞代碼或東西將是有用的。
如何重新安排字符串,以便相同的字符彼此不相鄰,並且如果有很多替代的排序選項,我們將選擇按字母順序排序的字符串?如何重新排列字符串以使相同的字符不相鄰?
即
AAABBBB -> BABABAB
AAABBB -> ABABAB
BCDDEEEF -> BCEDEDEF
BACHH -> ABHCH
僞代碼或東西將是有用的。
一個天真的解決方案:
Find all permutations of the string
Find all that don't have repeating characters
Find the first alphabetically
+1,用於簡單的解決方案。雖然可能有點慢。 – Floris 2014-09-05 20:20:53
對於任何尺寸合理的字符串,此解決方案的成本過高。有一個天真的解決方案是可行的,但我懷疑這是否有效。 – templatetypedef 2014-09-05 21:04:15
「選擇哪一個按字母順序排序的一個」?那是什麼意思? – clcto 2014-09-05 20:08:53
@cicto AAABBB - > ABABAB不喜歡BABABA – wl1Z 2014-09-05 20:11:23
縮短近距離投票。鏈接的問題沒有「按字母順序選擇」標準。 – 2014-09-05 20:30:23