题解 | #重排字符串#

重排字符串

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,"")
}

全部评论

相关推荐

牛客517626884号:嵌入式真难啊今年,我电赛国二都成了路边野狗了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务