问题描述
从句子中删除多余空格
样例
样例1:
输入: s = "The sky is blue"
输出: "The sky is blue"
样例2:
输入: s = " low ercase "
输出: "low ercase"
解题思路
- 先去首尾空格;
- 新建一个字符串用于保存结果;遍历输入的字符串,记一个flag用于表示前面的字符是不是空格:
A. 如果当前字符不是空格,添加到新字符串中,flag
置为false
;
B. 如果当前字符是空格且flag
为false
,将空格添加到新字符串中,flag
置为true
;
C. 如果当前字符是空格且flag
为true
,无需任何操作。
代码示例(JAVA)
public class Solution {
/**
* @param s: the original string
* @return: the string without arbitrary spaces
*/
public String removeExtra(String s) {
s = s.trim();
StringBuilder result = new StringBuilder();
boolean beforeFlag = false;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c != ' ') {
result.append(c);
beforeFlag = false;
} else if (!beforeFlag) {
result.append(c);
beforeFlag = true;
}
}
return result.toString();
}
}
网友评论