Easy
Given a string s
, return the number of segments in the string.
A segment is defined to be a contiguous sequence of non-space characters.
Example 1:
Input: s = “Hello, my name is John”
Output: 5
Explanation: The five segments are [“Hello,”, “my”, “name”, “is”, “John”]
Example 2:
Input: s = “Hello”
Output: 1
Constraints:
0 <= s.length <= 300
s
consists of lowercase and uppercase English letters, digits, or one of the following characters "!@#$%^&*()_+-=',.:"
.s
is ' '
.@Suppress("NAME_SHADOWING")
class Solution {
fun countSegments(s: String): Int {
var s = s
s = s.trim { it <= ' ' }
if (s.isEmpty()) {
return 0
}
val splitted = s.split(" ".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()
var result = 0
for (value in splitted) {
if (value.isNotEmpty()) {
result++
}
}
return result
}
}