每日一题:力扣1592. 重新排列单词间的空格

知识浅谈 知识浅谈 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

题意

给你一个字符串 text ,该字符串由若干被空格包围的单词组成。每个单词由一个或者多个小写英文字母组成,并且两个单词之间至少存在一个空格。题目测试用例保证 text 至少包含一个单词 。

请你重新排列空格,使每对相邻单词之间的空格数目都 相等 ,并尽可能 最大化 该数目。如果不能重新平均分配所有空格,请 将多余的空格放置在字符串末尾 ,这也意味着返回的字符串应当与原 text 字符串的长度相等。

返回 重新排列空格后的字符串 。

解答

class Solution {
    public String reorderSpaces(String text) {
        String text1 = text.trim();
        String[] ss = text1.split("\s+");
        int len=0,num=0;
        for(String s:ss){
            num+=s.length();
            len++;
        }
        
        int space = text.length()-num;
        if(len==1){
            StringBuilder sbu1 =  new StringBuilder();
            for(int i=0;i<space;i++) sbu1.append(" ");
            return ss[0]+sbu1.toString();
        }
        int kong = space/(len-1);
        StringBuilder sbu =  new StringBuilder();
        for(int i=0;i<kong;i++) sbu.append(" ");
        StringBuilder sbz = new StringBuilder(ss[0]);
        for(int i=1;i<len;i++){
            sbz.append(sbu.toString());
            sbz.append(ss[i]);
        }
        kong = space%(len-1);
        for(int i=0;i<kong;i++) sbz.append(" ");
        return sbz.toString();
    }
}

结果:

img

...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部
知识浅谈
知识浅谈 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
知识浅谈后端社区 20,252 成员 79 内容