Exerciții JavaScript

Nivel Începător

1. Verificare Număr Par

Ușor

Scrie o funcție care verifică dacă un număr este par sau impar.

Input: Un număr întreg
Output: "par" sau "impar"

2. Suma Array

Ușor

Calculează suma tuturor elementelor dintr-un array de numere.

Input: [1, 2, 3, 4, 5]
Output: 15

3. Reverse String

Ușor

Inversează un șir de caractere fără a folosi metoda reverse().

Input: "hello"
Output: "olleh"

4. FizzBuzz

Ușor

Printează numerele de la 1 la 100. Pentru multiplii de 3 printează "Fizz", pentru 5 "Buzz", pentru ambii "FizzBuzz".

Output: 1, 2, Fizz, 4, Buzz, ...

5. Cel Mai Mare Număr

Ușor

Găsește cel mai mare număr dintr-un array.

Input: [3, 7, 2, 9, 1]
Output: 9

6. Numără Vocale

Ușor

Numără câte vocale conține un string.

Input: "programare"
Output: 4

Nivel Intermediar

7. Palindrom Check

Mediu

Verifică dacă un string este palindrom (se citește la fel de la stânga la dreapta și invers).

Input: "radar"
Output: true

8. Remove Duplicates

Mediu

Elimină duplicatele dintr-un array și returnează array-ul cu elemente unice.

Input: [1, 2, 2, 3, 4, 4, 5]
Output: [1, 2, 3, 4, 5]

9. Flatten Array

Mediu

Transformă un array multidimensional într-unul unidimensional.

Input: [1, [2, [3, 4], 5]]
Output: [1, 2, 3, 4, 5]

10. Anagram Checker

Mediu

Verifică dacă două stringuri sunt anagrame (conțin aceleași litere).

Input: "listen", "silent"
Output: true

11. Deep Clone Object

Mediu

Creează o copie profundă a unui obiect (inclusiv obiecte nested).

Concepte: Recursion, Object manipulation

12. Debounce Function

Mediu

Implementează o funcție debounce pentru a limita execuția unei funcții.

Concepte: Closures, setTimeout, this binding

Nivel Avansat

13. Promise.all Implementation

Dificil

Implementează propria versiune a metodei Promise.all().

Concepte: Promises, async programming

14. Event Emitter

Dificil

Creează o clasă EventEmitter cu metode on, off, emit.

Concepte: OOP, Design patterns, Events

15. Virtual DOM Diff

Dificil

Implementează un algoritm simplu de diff pentru Virtual DOM.

Concepte: Tree traversal, Algorithms, DOM

Exerciții Python

Nivel Începător

1. Factorial

Ușor

Calculează factorialul unui număr (recursiv și iterativ).

Input: 5
Output: 120

2. Fibonacci Sequence

Ușor

Generează primele n numere din seria Fibonacci.

Input: 7
Output: [0, 1, 1, 2, 3, 5, 8]

3. Prime Number

Ușor

Verifică dacă un număr este prim.

Input: 17
Output: True

4. List Comprehension

Ușor

Creează o listă cu pătratele numerelor de la 1 la 10 folosind list comprehension.

Output: [1, 4, 9, 16, ..., 100]

5. Word Counter

Ușor

Numără de câte ori apare fiecare cuvânt într-un text.

Concepte: Dictionaries, String manipulation

6. File Reader

Ușor

Citește un fișier și numără liniile, cuvintele și caracterele.

Concepte: File I/O, String processing

Nivel Intermediar

7. CSV Parser

Mediu

Parsează un fișier CSV și calculează statistici (medie, max, min).

Concepte: CSV, Data processing, Statistics

8. Web Scraper

Mediu

Extrage titlurile articolelor de pe o pagină de știri.

Tools: BeautifulSoup, Requests

9. API Client

Mediu

Creează un client pentru o API publică (ex: OpenWeatherMap).

Concepte: HTTP requests, JSON, Error handling

10. Class Hierarchy

Mediu

Implementează o ierarhie de clase pentru un system de animale.

Concepte: OOP, Inheritance, Polymorphism

Exerciții Algoritmi

Sorting & Searching

Binary Search

Mediu

Implementează algoritmul Binary Search pentru căutare într-un array sortat.

Complexitate: O(log n)

Merge Sort

Mediu

Implementează algoritmul Merge Sort pentru sortare.

Complexitate: O(n log n)

Quick Sort

Dificil

Implementează algoritmul Quick Sort cu pivot selection.

Complexitate: O(n log n) average

Data Structures

Stack Implementation

Ușor

Implementează o structură de date Stack cu operațiile push, pop, peek.

Operații: push, pop, peek, isEmpty

Queue Implementation

Ușor

Implementează o structură de date Queue cu enqueue și dequeue.

Operații: enqueue, dequeue, peek

Linked List

Mediu

Creează o clasă LinkedList cu metodele insert, delete, search.

Operații: insert, delete, search, reverse

Binary Tree

Dificil

Implementează un Binary Search Tree cu insert, delete, search.

Traversări: in-order, pre-order, post-order

Exerciții Web Development

HTML & CSS

Responsive Navigation

Ușor

Creează un meniu de navigare responsive cu hamburger menu pentru mobile.

Tehnologii: HTML, CSS, JavaScript

CSS Grid Gallery

Ușor

Construiește o galerie foto responsivă folosind CSS Grid.

Concepte: CSS Grid, Responsive design

Form Validation

Mediu

Implementează validare client-side pentru un formular de contact.

Validări: Email, Phone, Required fields

Modal Component

Mediu

Creează un component modal reutilizabil cu animații.

Features: Open, Close, Overlay, Animations

Sfaturi pentru Practică Eficientă

Înțelege Problema

Înainte de a codifica, asigură-te că înțelegi complet cerințele. Schițează soluția pe hârtie.

Scrie Cod Curat

Folosește nume descriptive pentru variabile, indentare corectă și comentarii unde e necesar.

Testează Edge Cases

Nu testa doar cazurile normale. Verifică și situațiile extreme: array gol, null, valori mari.

Practică Regulat

Consistența e cheia. Rezolvă câteva exerciții zilnic pentru a-ți consolida cunoștințele.