Count the number of segments in a string, where a segment is defined to be a contiguous sequence of non-space characters.
Please note that the string does not contain any non-printable characters.
Example:
Input: "Hello, my name is John" Output: 5这道题很简单,只需要 o(n) 复杂度遍历一遍即可,遇到不为space的字符串计数就加一。代码如下:
public class Solution {
public int countSegments(String s) {
char[] chars = s.toCharArray();
int i = 0;
int stillspace = 1;
int count = 0;
while (i < chars.length) {
if (chars[i] != ' ') {
if (stillspace == 1) {
count ++;
}
stillspace = 0;
} else {
stillspace = 1;
}
i ++;
}
return count;
}
}
这个算法耗时2ms,拿到了100%的exceed。
当然,这问题也可以用一行代码解决:
public int countSegments(String s) {
return ("x " + s).split(" +").length - 1;
}