11 / 205
LeetCode · EasyOson10 ball· ~10 daqiqa

Count Asterisks

Sizga ingliz harflari, bo'sh joylar, yulduzchalar * va vertikal chiziqlar | dan iborat s satri berilgan.

s da vertikal chiziqlar soni har doim juft bo'lishi kafolatlanadi. Har bir ketma-ket ikki vertikal chiziqlar | orasidagi belgilarni bir guruh (pair) deb hisoblasak, siz ushbu juftliklar orasiga kirmaydigan yulduzchalar * sonini topishingiz kerak.

example.go
func solve(s string) int {
    // ...
}

Misollar

kod
Input: s = "l|*e*et|c**o|*de|"
Output: 2
Tushuntirish: |...| orasidagi qismlarni hisobga olmasak: "l", "c**o" qoladi. Ularning ichida 2 ta yulduzcha bor.
kod
Input: s = "iamprogrammer"
Output: 0
kod
Input: s = "yo|uar|e**|b|e***au|tifu|l"
Output: 5

Maslahatlar

  1. '|' belgisiga duch kelganingizda holatni (juftlik ichidami yoki yo'qmi) almashtirib borishni o'ylang (boolean flag).
  2. Satrni chapdan o'ngga aylanib, '|' ga duch kelganda flag'ni teskarisiga o'zgartiring, '*' ga duch kelganda flag juftlik tashqarisini bildirsa hisoblagichni oshiring.