Sponsored
Sponsored
One efficient way to determine the number of segments in a string is to utilize its built-in split method, which divides the string into parts based on spaces. The segments will represent contiguous sequences of non-space characters. This approach handles all continuous whitespaces correctly by filtering out empty strings in the resulting list or array.
Time Complexity: O(n), where n is the length of the string. Space Complexity: O(1), using in-place manipulation.
1def count_segments(s: str) -> int:
2 return len(s.split())
3
4s = "Hello, my name is John"
5print(count_segments(s))
This Python function uses the built-in split()
method with no arguments, which appropriately splits the string by any whitespace and handles multiple spaces effectively.
This approach iteratively examines the characters of the string to manually count segments. We increment the segment count every time we encounter the start of a segment: a non-space character that was preceded by a space or the start of the string.
Time Complexity: O(n), iterating over the string once. Space Complexity: O(1), as no additional storage beyond a few variables is needed.
1
int countSegments(const std::string &s) {
int count = 0;
bool inSegment = false;
for (char ch : s) {
if (ch != ' ') {
if (!inSegment) {
++count;
inSegment = true;
}
} else {
inSegment = false;
}
}
return count;
}
int main() {
std::string s = "Hello, my name is John";
std::cout << countSegments(s) << std::endl;
return 0;
}
This C++ solution iterates over each character, using a flag inSegment
to determine whether the current character starts a new segment, thereby counting segments manually.