рджреЛ рд╡рд┐рдХрд╛рд╕ рдиреАрдВрдмреВ рдРрд╕реЗ рдХрдерди рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдФрдкрдЪрд╛рд░рд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдХреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдХреНрд╖рд╛рдУрдВ рдХреА рд╕реАрдорд╛ рдХреЛ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдирд┐рдпрдорд┐рдд рдФрд░ рд╕рдВрджрд░реНрдн-рдореБрдХреНрддред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЗрди рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдорд╣рддреНрд╡ рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ: рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (рдирд┐рдпрдорд┐рдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛рдо рдореЗрдВ рдЕрдХреНрд╕рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдВ рдЬрд┐рдирдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕рдВрджрд░реНрдн-рдореБрдХреНрдд рд╡реНрдпрд╛рдХрд░рдг рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ рдФрд░ рднреА рдЕрдзрд┐рдХ рд╣реИрдВред
рдиреАрдВрдмреВ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рджреЛрдиреЛрдВ рд░реВрдкреЛрдВ рдФрд░ рдкреНрд░рдорд╛рдгреЛрдВ рдореЗрдВ рд╕рдорд╛рди рд╣реИрдВред рдпрд╣ рдирд┐рдХрдЯрддрд╛ рдореБрдЭреЗ рдЗрддрдиреА рдЕрджреНрднреБрдд рд▓рдЧреА рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреВрд░рд╛ рд▓реЗрдЦ рд╕рдорд░реНрдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдпреЛрдЬрдирд╛ рдпрд╣ рд╣реИ: рд╣рдо рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рдпрдорд┐рдд рднрд╛рд╖рд╛рдПрдВ рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдФрд░ рдкрд░рд┐рдорд┐рдд рдСрдЯреЛрдореЗрдЯрд╛ рдХреЗ рдмреАрдЪ рдХреНрдпрд╛ рд╕рдВрдмрдВрдз рд╣реИ, рд╣рдо рдирд┐рдпрдорд┐рдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓реЗрдореНрдорд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рдмрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдХреА рдЕрдирд┐рдпрдорд┐рддрддрд╛ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рд╕рдВрджрд░реНрдн-рдореБрдХреНрдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рди рдЪрд╛рд▓ рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдпрд╣ рднреА рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рд╡реЗ рдирд┐рдпрдорд┐рдд рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ рдФрд░ рдЖрдо рд╡реНрдпрд╛рдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦреЛрдЬ рдХреА рдЧрдИ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪреЗрдВред рдЬрд╛рдУ!

рдХреЗрдбреАрдкреАрд╡реА рдХреЗрдПрд╕ рд╡реНрдпрд╛рдХрд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ
тАФ ( , ) . , , . : ╬г. , .. , : ╬╡.
(.. ), : . . , .
1.
: , , .
, :
- тИЕ тАФ , ;
- {╬╡} тАФ , , , ;
- {a},aтИИ╬г тАФ , .
. A B тАФ , :
- AтИкB тАФ ;
- AтЛЕB={╬▒╬▓|╬▒тИИA,╬▓тИИB} тАФ : , A, B;
- AтИЧ={╬▒1╬▒2...╬▒k|kтИИN0,╬▒iтИИA} тАФ : k A, k .
: N0=NтИк{0}, ,
: AтЛЕB=AB.
. , , . , PuTTY, - :
http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+
, url' , , , , url'. .
: ([0-9]
), ([s]?
), (a+
тАФ , aa*
, .. ) . , , .
, ( ), |
(), *
() . , .
, :
abc(deтИЧf|de)
, :
abcde
abcdf
abcdef
abcdeef
abcdeeef
abcdeeeef
.
2.
. тАФ , . , (). .
. , , .
, , . , , . , тАФ , .
. , , , , .

, bab|aabтИЧca
. ai, aj, ak тАФ . ai ak , Lik. , ai aj Lij, aj ak тАФ Ljk. , aj , Ljj.
aj, ai ak ,
LтА▓ik=LikтИкLijтЛЕLтИЧjjтЛЕLjk
, aj. , , , .

, , . , - , ╬╡. , . , .
, . : ; , , , , ; , , , , .
, . , , :

, .
3.
L={anbn|nтИИN0}. ╬╡, ab, aabb, aaabbb . ? , .
, , . , , : , a тАФ b. , ? тАж , , ?
, ! , , .
. L nтИИN , тИАwтИИL,|w|тЙеn x, y, z, : w=xyz; yтЙа╬╡; |xy|тЙдn; тИАkтЙе0:xykzтИИL.
рд░рд╣рдиреЗ рджреЛ рдПрд▓ тАФ , n, wтИИL тАФ n.
w: a0, a1, a2, ..., am. , , m+1 , mтЙеn.
n , . ai тАФ , j. x тАФ i w, y тАФ w, ai aj, z тАФ w, aj an.
ai aj , ( !) , , , тИАkтИИN0:xykzтИИL.
ai, aj тАФ . , a0, a1, ..., ajтИТ1 . , n. , jтЙдn |xy|тЙдn, .
: , , ( .. ) , , .
L={anbn|nтИИN0}. n тАФ . anbn anbn=xyz,
|xy|тЙдn, , , xy a. y a, . xykz k>1 a, b , , L. L. , L !
(n)n, . .
4. -
тАФ , .
: () T () N; ╬г=NтИкT. SтИИN тАФ .
P. ╧Ж ╬г: (s1,s2)тИИ╧Ж, s1 s2. : . , (s1,s2)тИИ╧Ж, s1тЖТs2.
╬▓ ╬▒, ╬▒=xs1z, ╬▓=xs2z (s1,s2)тИИ╧Ж. , тАФ . : ╬▒тКв╬▓.
, ╬▓ ╬▒ ( ), s0=╬▒, s1, s2, ..., sk+1=╬▓, : siтКвsi+1. ╬▒тЗТ╬▓.
s , : sтИИTтИЧ, SтЗТs. , , .
, - (-), тАФ . , - , - .
, - :
SтЖТ(S)S
SтЖТ╬╡
, , . , - , . ; .
, , ┬л┬╗ :
def BuildPath(queue, parents, parent):
path = []
while parents[parent] != parent:
path += [queue[parent]]
parent = parents[parent]
return path[::-1]
def Solve(rules, target):
queue = ['S']
parents = [0]
idx = 0
while idx < len(queue):
current = queue[idx]
for rule in rules:
entryIdx = current.find(rule[0])
while entryIdx != -1:
new = current[:entryIdx] + rule[1] + current[entryIdx + len(rule[0]):]
if new == target:
path = [queue[0]] + BuildPath(queue, parents, idx) + [new]
return path
queue.append(new)
parents.append(idx)
entryIdx = current.find(rule[0], entryIdx + 1)
idx += 1
, , , , , ; ! :
rules = [
("S", "(S)S"),
("S", ""),
]
target = "(()())()"
print('\n'.join(Solve(rules, target)))
S
(S)S
((S)S)S
((S)(S)S)S
((S)(S)S)(S)S
(()(S)S)(S)S
(()()S)(S)S
(()())(S)S
(()())()S
(()())()
- L={anbn|nтИИN0}:
rules = [
("S", "aSb"),
("S", ""),
]
target = "aaabbb"
print('\n'.join(Solve(rules, target)))
S
aSb
aaSbb
aaaSbbb
aaabbb
- , . , -, . , - : , , , .
, - .
5. -
L={anbncn|nтИИN0}. , - anbn, , , - :
SтЖТ╬╡
SтЖТAB
AтЖТaAb
BтЖТBc
AтЖТ╬╡
BтЖТ╬╡
anbncm. , m n? ┬л ┬╗ , , . , , . -,
- . - L nтИИN , тИАwтИИL,|w|тЙеn u, v, x, y, z, : w=uvxyz; vyтЙа╬╡; |vxy|тЙдn; тИАkтЙе0:uvkxykzтИИL.
, .
, . , . , :
SтЖТ╬╡
AтЖТBC
AтЖТa
, , : , тАФ . . .

- acd
, . n=2|N|+1, |N| тАФ , wтИИL,|w|тЙеn. . тАФ , .. . , m , |N|+1. , -. , .
B , , B. : , , .
B , SтКвuBz. B , B, BтЖТvBy, vyтЙа╬╡, .. , . B x.

:
, тИАkтИИN0SтКвuvkxykz, vyтЙа╬╡.
vxy. .. B, , |N|. , 2|N|+1=n. |vxy|тЙдn.
L={anbncn|nтИИN0}. , -. , n тАФ . anbncn.
, anbncn=uvxyz, |vxy|тЙдn vyтЙа╬╡, uvkxykz .
vxy a, c, .. w a c n b, vxy n.
uvkxykz k. , k>1 m, uvkxykz=ambmcm, L. , -!
6.
, - . , L={anbncn|nтИИN0}, .
:
SтЖТ╬╡
SтЖТaHbCE
E , b c. :
EтЖТ╬╡
H :
HтЖТaHbC
HтЖТ╬╡
, , C c. - !
CbтЖТbC
CEтЖТEc
! 5 , :
rules = [
("S", "aHbCE"),
("H", ""),
("H", "aHbC"),
("Cb", "bC"),
("CE", "Ec"),
("E", ""),
]
target = "aaabbbccc"
print('\n'.join(Solve(rules, target)))
S
aHbCE
aaHbCbCE
aaaHbCbCbCE
aaaHbbCCbCE
aaaHbbCbCCE
aaaHbbbCCCE
aaaHbbbCCEc
aaaHbbbCEcc
aaaHbbbEccc
aaaHbbbccc
aaabbbccc
: ┬л┬╗ ; C . .
( ) , . - .