思路:使用哈希表,將字符串按照頻率排序後 組裝在一塊兒。這個時候重點來了,怎麼樣讓這些相同的字符不相鄰的,技巧就是使用切片!
由於排序後相鄰的字符是同樣的,因此,咱們把前半部分(等於或者大於後邊一個),按照間隔的放到結果字符串中。而後把後半部分同理。spa
代碼以下:3d
class Solution(object): def reorganizeString(self, S): """ :type S: str :rtype: str """ n = len(S) A = [] for c,x in sorted((S.count(x),x) for x in set(S)): if c>(n+1)/2:return "" A.extend(c*x) ans = [None]*n ans[::2],ans[1::2] = A[n//2:],A[:n//2] return "".join(ans)