|
| 1 | +## Правилни скоби |
| 2 | + |
| 3 | +Дефинираме "Правилни скоби" по следния начин: |
| 4 | + |
| 5 | +Правилни скоби са: |
| 6 | + |
| 7 | +а) `()` - лява скоба `(` до дясна скоба `)` |
| 8 | + |
| 9 | +б) `(< правилни скоби >)` - лява скоба `(` до правилни скоби, до дясна скоба `)` |
| 10 | + |
| 11 | +в) `< правилни скоби >< правилни скоби >` - правилни скоби до правилни скоби |
| 12 | + |
| 13 | +## Задача |
| 14 | + |
| 15 | +На избран от вас език, напишете програма, която чете от стандартния вход подаден низ и връща дали този низ е "Правилни скоби." |
| 16 | + |
| 17 | +## Пример 1 |
| 18 | + |
| 19 | +Input: |
| 20 | +``` |
| 21 | +()(()) |
| 22 | +``` |
| 23 | +Output: |
| 24 | +``` |
| 25 | +True |
| 26 | +``` |
| 27 | + |
| 28 | +### Описание |
| 29 | + |
| 30 | +Това са правилни скоби защото: |
| 31 | +1. Спрямо дефиниция `в)`, разделяме въведеният израз `()(())` на две части: `()` и `(())`. Това означава, че ако първата и втората част са "правилни скоби" - то и целия израз е "правилни скоби" |
| 32 | +2. Спрямо дефиниция `a)` разглеждаме първият израз от разделените в точка 1. Изразът `()` е вярно, че е "правилни скоби" спрямо дефиниция `a)`. |
| 33 | +3. Спрямо дефиниция `б)` разгеждаме втората част от изразът от точка 1. Изразът `(())` е възможно да отговаря на `б)` защото започва с лява скоба `(` и завършва на дясна скоба `)`. Тоест ако изразът между първата и последната скоба (именно този "()"), отговаря на дефиницията на "правилни скоби" - то и целия израз отговаря на дефиницията на "правилни скоби". |
| 34 | +4. Спрямо дефиниция `a)` разглеждаме последната отделена част в точка 3. Изразът `()` отговаря на `a)` от дефиницията на "правилни скоби", тоест - И изразът в точка 3 също отговаря на дефиницията. |
| 35 | + |
| 36 | +С горните съображения можем да кажем, че въведеният израз "()(())" отговаря на дефиницията на "правилни скоби" |
| 37 | + |
| 38 | +## Пример 2 |
| 39 | + |
| 40 | +Input: |
| 41 | +``` |
| 42 | +())) |
| 43 | +``` |
| 44 | +Output: |
| 45 | +``` |
| 46 | +False |
| 47 | +``` |
| 48 | + |
| 49 | +### Описание |
| 50 | + |
| 51 | +1. Разглеждаме изразът `()))` спрямо дефиниция `б)`, защото започва с лява скоба и завършва на дясна скоба. Това означава, че ако изразът между първата и последната скоба, отговаря на дефиницията на "правилни скоби", то целият израз отговаря. |
| 52 | +2. Разглеждаме изразът `))` останал от точка 1. Той не отговаря на нито една от дефинициите `а)` `б)` или `в)`. Това означава, че все още не сме доказали, дали изразът е "правилни скоби". |
| 53 | +3. Разглеждаме изразът `()))` спрямо дефиниция `в)` - това означава, че го разделяме на 2 части. Ако лявата част и дясната част са "правилни скоби", то и целият израз е "правилни скоби" |
| 54 | +4. Разглеждаме лявата част от точка 3 `()` спрямо дефинициите и виждаме, че отговаря на дефиниция `a)` |
| 55 | +5. Разглеждаме дясната част от точка 3 `))` тя не отговаря на нито една от дефинициите `a)`, `б)` или `в)`. Следователно целият израз не е "правилни скоби" спрямо дефиниция `в)` |
0 commit comments