给定char数组, 要求在原地清除前置空格后置空格, 字符间只允许保留一个空格.
例如:
输入 " a good example ";
输出 "a good example"
// 原地删除前置空格和后置空格, 以及内部多余的空格, 返回新字符串长度
public int trim(char[] str) {
int i = 0;
int n = str.length;
int k = 0; // 记录删除多余空格之后的数组长度
while (i<n && str[i] == ' ') {
i++;
}
while (i<n) {
if(str[i] == ' ') { // 删除内部多余空格和末尾空格
if(i+1 < n && str[i+1] != ' ') {
str[k++] = ' ';
}
} else {
str[k++] = str[i];
}
i++;
}
return k;
}