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();
    }
}