15,098
社区成员
发帖
与我相关
我的任务
分享
给你一个字符串 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();
}
}