給定一個字符串作爲字母數字字符,其中某些字符在連續的地方重複,我們必須分散重複的字符以使它們不連續。打印所有可能的字符串,不包含重複字符中相鄰的相等字符字符串
input: aaaabbbcdd11
Output: abababacd1d1 or any other valid combination.
如果沒有這樣的組合,那麼應該沒有輸出。
這個問題在面試中被問到。我仍然無法解決這個算法。我不確定這是否是正確的論壇。但我非常好奇知道可以用來解決這個問題的正確的算法/數據結構。
我試圖創建一個哈希(地圖),以便我可以保持所有字符的計數。
str = "aaaabbbcdd11"
hashChrs = {}
for item in list(str):
if item in hashChrs:
hashChrs[item] = hashChrs[item] + 1
else:
hashChrs[item] = 1
print hashChrs
{ '一個':4, '1':2, 'C':1, 'B':3, 'd':2}
當最高頻率的字符計數將是超過總字數的一半,則不會生成輸出。
現在我不能夠使用地圖
你做了什麼/你是如何解決這個問題的? – depperm