Advertisement
Guest User

Генералов КС-грамматика

a guest
Feb 19th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.73 KB | None | 0 0
  1. #coding: utf-8
  2.  
  3. ''' считывание файла '''
  4. d = {}
  5. f = open('gr.txt', 'r')
  6. for s in f:
  7.     a, b = s.rstrip().split(' -> ')
  8.     c = b.split(' | ')
  9.     d[a] = c
  10.  
  11. ''' функции для работы с КС-грамматикой '''
  12. def search(l):
  13.     ind_min = 0
  14.     c_min = 0
  15.     for i in l:
  16.         c_min = max(c_min, len(i))
  17.     for ind, i in enumerate(l):
  18.         c = 0
  19.         for j in i:
  20.             if 'A' <= j <= 'Z':
  21.                 c += 1
  22.         if c < c_min:
  23.             c_min = c
  24.             ind_min = ind
  25.     return ind_min
  26.  
  27. def rec(k):
  28.     for char in list(d[k][search(d[k])]):
  29.         if 'A' <= char <= 'Z':
  30.             rec(char)
  31.         else:
  32.             print(char, end='')
  33.    
  34. rec('S')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement