https://leetcode.com/problems/split-a-string-in-balanced-strings/ | Easy |
---|
Дана строка s
, содержащая только символы 'L'
и 'R'
. Строка называется сбалансированной, если количество 'L'
равно количеству 'R'
. Нужно определить максимальное количество сбалансированных подстрок, на которые можно разделить s
.
Input:
"RLRRLLRLRL”Output:
4Explanation:
s
можно разделить на"RL"
,"RRLL"
,"RL"
,"RL"
, каждая подстрока содержит одинаковое количество'L'
и'R'
.
Input:
"RLLLLRRRLR”Output:
3Explanation:
s
можно разделить на"RL"
,"RRRLLRLL"
, каждая подстрока содержит одинаковое количество'L'
и'R'
. Обрати внимание, чтоs
нельзя разделить на"RL"
,"RR"
,"RL"
,"LR"
,"LL"
, потому что 2-я и 5-я подстроки несбалансированы.
Input:
"LLLLRRRR”Output:
1Explanation:
s
можно разделить на"LLLLRRRR"
.
fun balancedStringSplit(s: String): Int {
var count = 0
var balance = 0
for (char in s) {
balance += if (char == 'L') 1 else -1
if (balance == 0) count++
}
return count
}
O(n), где n
— длина строки s
.
O(1), так как используются только счётчики.