Advertisement
Guest User

Untitled

a guest
Apr 16th, 2020
372
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.87 KB | None | 0 0
  1. from typing import List, Set
  2. from collections import Counter
  3.  
  4. def find_min_table(table: List[str], chars: Set[str]) -> int:
  5.     for idx in range(len(table) - 1):
  6.         if table[idx] != table[idx + 1]:
  7.             return min(
  8.                 [len(table)] +                                                      
  9.                 [find_min_table(table[: idx] + [k] + table[idx + 2:], chars)        
  10.                     for k in chars if k != table[idx] and k != table[idx + 1]]
  11.                 )
  12.    
  13.     # Brak mozliwosci jakiejkolwiek zmiany
  14.     return len(table)
  15.  
  16. if __name__ == '__main__':
  17.  
  18.     initial_array = ['a', 'b', 'c']
  19.     chars = set(initial_array)
  20.  
  21.     # Sortowanko z kluczem
  22.     counter = Counter(initial_array)
  23.     initial_array = sorted(initial_array, key=lambda x: counter[x], reverse=True)
  24.  
  25.     # Rek
  26.     print(find_min_table(initial_array, chars))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement