Skip to content

Commit a28a767

Browse files
committed
Add second applications task
1 parent 27472d4 commit a28a767

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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

Comments
 (0)