Masalalar
Go Algoritm masala

To‘g'ri qavslar

11 August, 2026
Go
package main
func (_ Solution) Is_valid(s string) bool {
    balance := 0

    for _, i := range s {
      if i == '(' {
        balance++
      } else if i == ')' {
        balance --

        if balance < 0{
          return false
        }
      }
    }
    return balance ==0
}

Buyerda balance ozgaruvchisi orqali hisoblaymiz


dastlab men strngdagi ( va ) larning osniga tekshirdim lekin bildimki ()() kelib qolsa son jihatidan teng lekin ketma ketlik xato


shunday qilib balance ozgaruvchisi meni qutqardi


uyerda dastlab ( manabunday xoaltga balanceni oshiraman va ) bunday kelsa kamaytiraman va shuni ozidayoq tekshiraman balance 0dan kichik emasmi deb, lekin savol nima uchun ayana shuyerda ?


Javob shuki, qavslar har doim ( bunday ochiladi va uning parasi albatta unday ) boladi


yani balance buyerda qavslarning ketma-ketligini tekshiryapti


((()() bolsa


birinchi balance 1,2,3 boladi keyin 2,3,2 bolbi qoladi