题解 | #重排字符串#
重排字符串
https://www.nowcoder.com/practice/6c3a5604cf274b2287fbe27c5dc74743
package main import "strings" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return string字符串 */ func rearrangestring( str string ) string { cnt:=map[byte]int{} max:=0 var tar byte for _,ch:=range []byte(str){ cnt[ch]++ if cnt[ch]>max{ max=cnt[ch] tar=ch } } if len(str)-max<max-1{ return "" } ans:=make([]string,max) for i,_:=range ans{ ans[i]=string(tar) } delete(cnt,tar) add:="" for k,v:=range cnt{ add+=strings.Repeat(string(k), v) } for len(add)>0{ for i:=0;i<max;i++{ if len(add)==0{ break } ans[i]+=string(add[0]) add=add[1:] } } return strings.Join(ans,"") }