Зөв хаалтын урт


Submit solution

Points: 5
Time limit: 1.0s
Memory limit: 16M

Author:
Problem type
Allowed languages
C++

Танд зөвхөн дараах тэмдэгтүүдээс бүрдсэн S тэмдэгт мөр өгөгдөнө:

( ) [ ] { }

Та энэ тэмдэгт мөрөөс зарим тэмдэгтийг устгаж болно.
Гэхдээ үлдсэн тэмдэгтүүдийн дарааллыг өөрчлөхгүй.

Таны зорилго бол: ? Үлдсэн тэмдэгтүүдээр зөв хаалттай дараалал үүсгэх
? Ийм дарааллын хамгийн их боломжит уртыг олох


✅ Зөв хаалт гэж юу вэ?

Дараалал зөв гэж үзэхийн тулд:

  • Нээсэн хаалт бүр тохирох хаалтаар хаагдсан байх
  • Хаалтууд зөв дарааллаар байрласан байх

Жишээ:

  • (), [], {} → зөв
  • ([{}]) → зөв
  • ([)] → буруу
Оролт:

Нэг мөрөнд S тэмдэгт мөр өгөгдөнө.

Гаралт:

Нэг бүхэл тоо хэвлэнэ —
? Үүсгэж болох хамгийн урт зөв хаалттай дарааллын урт

Хязгаарлалт

  • 1 ≤ |S| ≤ 500
  • S нь зөвхөн ()[]{} тэмдэгтүүдээс бүрдэнэ
Дэд бодлого
Оноо Нөхцөл
1 1 оноо Зөвхөн (, ) байна
2 1 оноо |S| ≤ 100
3 1 оноо Зөвхөн (), [] байна
4 1 оноо Нэмэлт хязгаарлалтгүй
Жишээ
Оролт-1:
())(
Гаралт-1:
2
Оролт-2:
([)]
Гаралт-2:
2
Оролт-3:
()([])
Гаралт-3:
6

Comments

There are no comments at the moment.