Number of Segments in a String

https://leetcode.com/problems/number-of-segments-in-a-stringEasy

Условие

Дана строка s, представляющая собой предложение. Нужно вернуть количество сегментов в строке. Сегмент определяется как непрерывная последовательность непробельных символов.

Примеры

Input: s = “Hello, my name is John”

Output: 5

Explanation: Строка содержит 5 сегментов: “Hello,”, “my”, “name”, “is”, “John”.
Input: s = “Hello”

Output: 1

Решение

fun countSegments(s: String): Int {
    var count = 0
    var inSegment = false

    for (char in s) {
        if (char != ' ') {
            if (!inSegment) {
                count++  // Новый сегмент начался
                inSegment = true
            }
        } else {
            inSegment = false  // Конец сегмента
        }
    }

    return count
}

Временная сложность

O(n), где n — длина строки s, так как мы проходим по каждому символу строки один раз.

Пространственная сложность

O(1), так как мы используем только фиксированное количество дополнительной памяти.