Number of Segments in a String
https://leetcode.com/problems/number-of-segments-in-a-string | Easy |
Условие
Дана строка s, представляющая собой предложение. Нужно вернуть количество сегментов в строке. Сегмент определяется как непрерывная последовательность непробельных символов.
Примеры
Input:
s = “Hello, my name is John”Output:
5Explanation:
Строка содержит 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), так как мы используем только фиксированное количество дополнительной памяти.