Rearrange Spaces Between Words
给一个字符串, 其中有空格和字符, 求怎么分配空格, 让每个子字符串之间的空格都是平均的. 多余的空格放字符串后边.
这个题corner有点多, 比如 “a”, 比如” a”
class Solution {
public String reorderSpaces(String text) {
int space = 0;
StringBuilder sb = new StringBuilder();
int k = 0;
while(k < text.length()) {
if(text.charAt(k) == ' '){
space++;
k++;
}
else {
while(k < text.length() && text.charAt(k) != ' '){
sb.append(text.charAt(k++));
}
sb.append(" ");
}
}
String[] strs = sb.toString().split(" ");
int words = strs.length;
int d = 0;
int r = 0;
if(words == 1){ // "a"
d = 0;
r = space;
}
else{
d = space / (words - 1);
r = space % (words - 1);
}
StringBuilder res = new StringBuilder();
for(int j = 0; j < strs.length; j++) {
res.append(strs[j]);
if(j == strs.length - 1){
for(int i = 0; i < r; i++) {
res.append(" ");
}
break;
}
for(int i = 0; i < d; i++) {
res.append(" ");
}
}
return res.toString();
}
}