Зөв хаалтын урт
Submit solution
Points:
5
Time limit:
1.0s
Memory limit:
16M
Author:
Problem type
Allowed languages
C++
Танд зөвхөн дараах тэмдэгтүүдээс бүрдсэн S тэмдэгт мөр өгөгдөнө:
( ) [ ] { }
Та энэ тэмдэгт мөрөөс зарим тэмдэгтийг устгаж болно.
Гэхдээ үлдсэн тэмдэгтүүдийн дарааллыг өөрчлөхгүй.
Таны зорилго бол:
? Үлдсэн тэмдэгтүүдээр зөв хаалттай дараалал үүсгэх
? Ийм дарааллын хамгийн их боломжит уртыг олох
✅ Зөв хаалт гэж юу вэ?
Дараалал зөв гэж үзэхийн тулд:
- Нээсэн хаалт бүр тохирох хаалтаар хаагдсан байх
- Хаалтууд зөв дарааллаар байрласан байх
Жишээ:
(),[],{}→ зөв([{}])→ зөв([)]→ буруу
Оролт:
Нэг мөрөнд S тэмдэгт мөр өгөгдөнө.
Гаралт:
Нэг бүхэл тоо хэвлэнэ —
? Үүсгэж болох хамгийн урт зөв хаалттай дарааллын урт
Хязгаарлалт
1 ≤ |S| ≤ 500Sнь зөвхөн()[]{}тэмдэгтүүдээс бүрдэнэ
Дэд бодлого
| № | Оноо | Нөхцөл |
|---|---|---|
| 1 | 1 оноо | Зөвхөн (, ) байна |
| 2 | 1 оноо | |S| ≤ 100 |
| 3 | 1 оноо | Зөвхөн (), [] байна |
| 4 | 1 оноо | Нэмэлт хязгаарлалтгүй |
Жишээ
Оролт-1:
())(
Гаралт-1:
2
Оролт-2:
([)]
Гаралт-2:
2
Оролт-3:
()([])
Гаралт-3:
6
Comments