0507 – Căutare

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Sursa: [1]


Cerinţa

Se dă un vector x cu n elemente numere naturale, și un vector y cu m elemente, de asemenea numere naturale. Verificați pentru fiecare element al vectorului y dacă apare în x.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi cele n elemente ale vectorului x. Apoi și citește m și cele m elemente ale lui y.

Date de ieșire

Programul va afișa pe ecran m valori 0 sau 1, separate prin exact un spațiu. A j-a valoare afișată este 1, dacă al j-lea element al șirului y apare în x, respectiv 0 în caz contrar.

Restricţii şi precizări

  • 1 ≤ n,m ≤ 1000
  • elementele celor 2 vectori vor fi mai mici decât 1.000.000.000

Exemplu

Intrare
7
9 6 5 14 2 1 10
8
8 14 9 14 16 15 4 2
Ieșire
0 1 1 1 0 0 0 1


Rezolvare

Rezolvare ver. 1

def citeste_vector(numar_elemente, limita_inferioara, limita_superioara):
    vector = []
    for i in range(numar_elemente):
        elem = int(input(f"Introduceți elementul {i+1}: "))
        while elem < limita_inferioara or elem > limita_superioara:
            elem = int(input(f"Elementul {i+1} trebuie să fie între {limita_inferioara} și {limita_superioara}. Introduceți alt număr: "))
        vector.append(elem)
    return vector

def verifica_elemente(primul_vector, al_doilea_vector):
    rezultat = []
    for elem in al_doilea_vector:
        if elem in primul_vector:
            rezultat.append(1)
        else:
            rezultat.append(0)
    return rezultat

if __name__ == "__main__":
    nr_elemente_primul_vector = int(input("Introduceți numărul de elemente din primul vector: "))
    while nr_elemente_primul_vector < 1 or nr_elemente_primul_vector > 1000:
        nr_elemente_primul_vector = int(input("Numărul de elemente din primul vector trebuie să fie între 1 și 1000. Introduceți un alt număr: "))

    primul_vector = citeste_vector(nr_elemente_primul_vector, 1, 1000000000)

    nr_elemente_al_doilea_vector = int(input("Introduceți numărul de elemente din al doilea vector: "))
    while nr_elemente_al_doilea_vector < 1 or nr_elemente_al_doilea_vector > 1000:
        nr_elemente_al_doilea_vector = int(input("Numărul de elemente din al doilea vector trebuie să fie între 1 și 1000. Introduceți un alt număr: "))

    al_doilea_vector = citeste_vector(nr_elemente_al_doilea_vector, 1, 1000000000)

    rezultat = verifica_elemente(primul_vector, al_doilea_vector)

    print("Rezultatul verificării:")
    for valoare in rezultat:
        print(valoare, end=" ")
    print("Datele au fost introduse corect.")

Rezolvare ver. 2

# citim numărul de elemente din primul vector și apoi elementele lui
nr_elemente_primul_vector = int(input("Introduceți numărul de elemente din primul vector: "))
while nr_elemente_primul_vector < 1 or nr_elemente_primul_vector > 1000:
    nr_elemente_primul_vector = int(input("Numărul de elemente din primul vector trebuie să fie între 1 și 1000. Introduceți un alt număr: "))
primul_vector = set()
for i in range(nr_elemente_primul_vector):
    elem = int(input(f"Introduceți elementul {i+1} din primul vector: "))
    while elem < 1 or elem > 1000000000:
        elem = int(input(f"Elementul {i+1} din primul vector trebuie să fie între 1 și 1000000000. Introduceți alt număr: "))
    primul_vector.add(elem)

# citim numărul de elemente din al doilea vector și apoi elementele lui
nr_elemente_al_doilea_vector = int(input("Introduceți numărul de elemente din al doilea vector: "))
while nr_elemente_al_doilea_vector < 1 or nr_elemente_al_doilea_vector > 1000:
    nr_elemente_al_doilea_vector = int(input("Numărul de elemente din al doilea vector vector trebuie să fie între 1 și 1000. Introduceți un alt număr: "))
al_doilea_vector = []
for i in range(nr_elemente_al_doilea_vector):
    elem = int(input(f"Introduceți elementul {i+1} din al doilea vector: "))
    while elem < 1 or elem > 1000000000:
        elem = int(input(f"Elementul {i+1} din al doilea vector trebuie să fie între 1 și 1000000000. Introduceți alt număr: "))
    al_doilea_vector.append(elem)

# verificăm dacă fiecare element din al doilea vector se află în primul vector și afișăm rezultatul
for elem in al_doilea_vector:
    if elem in primul_vector:
        print("1", end=" ")
    else:
        print("0", end=" ")
print("Datele au fost introduse corect.")