题目描述:
https://leetcode-cn.com/problems/rearrange-spaces-between-words/
自测用例:
" this is a sentence "
" practice makes perfect"
"hello world"
" walks udp package into bar a"
"a"
" a"
" a"
" a "
Java代码:
class Solution {
public String reorderSpaces(String s) {
char[] a=s.toCharArray();
int space=a[0]==' '?1:0,word=a[0]==' '?0:1;
for(int i=1;i<a.length;i++){
if(a[i]==' ')space++;
else if(a[i-1]==' ')word++;
}
int avgSpace=word==1?0:space/(word-1),tailSpace=word==1?space:space%(word-1);
StringBuilder sb=new StringBuilder();
for(int i=0,j,cnt=0;i<a.length;i=j,i++){//i=j
for(j=i;j<a.length&&a[j]!=' ';j++)sb.append(a[j]);
if(j!=i&&++cnt!=word){
for(int k=0;k<avgSpace;k++)sb.append(' ');
}
}
for(int i=0;i<tailSpace;i++)sb.append(' ');
return sb.toString();
}
}