Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.66 KB | None | 0 0
  1. from random import randint
  2.  
  3.  
  4. def p(x,data):
  5.     temp = []
  6.     while True:
  7.         n1 = data.pop()
  8.         if n1 == x:
  9.             return x
  10.         temp.append(n1)
  11.  
  12.     while 0 != len(temp):
  13.         data.append(temp.pop())
  14.  
  15.  
  16. class Problem3:
  17.     def __init__(self):
  18.         self.statement = '3. Primiti o stiva. Operatii: \n'
  19.         self.statement += 'numar -> se inseaza numarul in stiva \n'
  20.         self.statement += 'P -> se extrage un numar din stiva si se afiseaza \n'
  21.         self.statement += 'Gasiti o succesiune de mutari a.i. introducand el. 1 2 3 4 5 in stiva (in aceasta ordine) la final sa se afiseze 3 2 4 5 1.'
  22.         self.data = []
  23.         k = randint(3, 60)
  24.         for i in range(1, k):
  25.             k1 = randint(1, k)
  26.             self.data.append(k1)  # numar(k1) = data.append(k1);
  27.  
  28.     def solve(self,data1):
  29.         solution = '1. Problema 3 nu este rezolvata inca. Datele de intrare: ' + str(data1) + '\n'
  30.         data=data1;
  31.         solutie = []
  32.         i = 1
  33.         n = len(data)
  34.         if n % 2 == 0:
  35.             contor = e = int(n / 2) - 1
  36.         else:
  37.             contor = e = int(n / 2)
  38.         solution += 'Vom parcurge vectorul\n'
  39.         solution += 'Pentru prima jumatate vom pleca in ordinea descrescatoare de eliminare (neinclusand pe primul)\n'
  40.         solution += 'De la a doua jumatate a vectorului se va elimina in aceeasi ordine \n'
  41.         while i < n:
  42.             solution += 'Se va elimina din stiva numarul ' + str(data[contor]) + ', avand contorul = ' + str(contor)
  43.             solution += ' si i = ' + str(i) + '.\n'
  44.             x = data[contor];
  45.             temp = []
  46.             while True:
  47.                 n1 = data.pop()
  48.                 if n1 == x:
  49.                     solutie.append(x);
  50.                     break;
  51.                 temp.append(n1)
  52.        
  53.             while 0 != len(temp):
  54.                 data.append(temp.pop())
  55.             if i < e:
  56.                 contor -= 1
  57.             i += 1
  58.         solution += 'Se va elimina din stiva numarul ' + str(data[contor-1]) + ', avand contorul = ' + str(contor-1)
  59.         solution += ' si i = ' + str(i) + '.\n'    
  60.         x = data[contor-1];
  61.         temp = []
  62.         while True:
  63.                 n1 = data.pop()
  64.                 if n1 == x:
  65.                     solutie.append(x);
  66.                     break;
  67.                 temp.append(n1)
  68.        
  69.         while 0 != len(temp):
  70.                 data.append(temp.pop())
  71.         solution += 'Astfel rezultatul este: ' + str(solutie)
  72.         print(solution);
  73.        
  74. def ret():
  75.      return Problem3();        
  76.        
  77. p1=Problem3();
  78. t=ret();
  79. print(t);
  80. print(t.statement);
  81. p1.solve(t.data);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement