Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from random import randint
- def p(x,data):
- temp = []
- while True:
- n1 = data.pop()
- if n1 == x:
- return x
- temp.append(n1)
- while 0 != len(temp):
- data.append(temp.pop())
- class Problem3:
- def __init__(self):
- self.statement = '3. Primiti o stiva. Operatii: \n'
- self.statement += 'numar -> se inseaza numarul in stiva \n'
- self.statement += 'P -> se extrage un numar din stiva si se afiseaza \n'
- 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.'
- self.data = []
- k = randint(3, 60)
- for i in range(1, k):
- k1 = randint(1, k)
- self.data.append(k1) # numar(k1) = data.append(k1);
- def solve(self,data1):
- solution = '1. Problema 3 nu este rezolvata inca. Datele de intrare: ' + str(data1) + '\n'
- data=data1;
- solutie = []
- i = 1
- n = len(data)
- if n % 2 == 0:
- contor = e = int(n / 2) - 1
- else:
- contor = e = int(n / 2)
- solution += 'Vom parcurge vectorul\n'
- solution += 'Pentru prima jumatate vom pleca in ordinea descrescatoare de eliminare (neinclusand pe primul)\n'
- solution += 'De la a doua jumatate a vectorului se va elimina in aceeasi ordine \n'
- while i < n:
- solution += 'Se va elimina din stiva numarul ' + str(data[contor]) + ', avand contorul = ' + str(contor)
- solution += ' si i = ' + str(i) + '.\n'
- x = data[contor];
- temp = []
- while True:
- n1 = data.pop()
- if n1 == x:
- solutie.append(x);
- break;
- temp.append(n1)
- while 0 != len(temp):
- data.append(temp.pop())
- if i < e:
- contor -= 1
- i += 1
- solution += 'Se va elimina din stiva numarul ' + str(data[contor-1]) + ', avand contorul = ' + str(contor-1)
- solution += ' si i = ' + str(i) + '.\n'
- x = data[contor-1];
- temp = []
- while True:
- n1 = data.pop()
- if n1 == x:
- solutie.append(x);
- break;
- temp.append(n1)
- while 0 != len(temp):
- data.append(temp.pop())
- solution += 'Astfel rezultatul este: ' + str(solutie)
- print(solution);
- def ret():
- return Problem3();
- p1=Problem3();
- t=ret();
- print(t);
- print(t.statement);
- p1.solve(t.data);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement