Vicky este secretară la o firmă internațională și lucrează la computer. Are o fișă încărcată, un tabel cu angajații firmei, pe care trebuie să o rearanjeze. Partea cea mai dificilă a muncii ei este să elimine din document spațiile care sunt în plus. Procesorul de text are funcție de înlocuire și poate înlocui orice șir de caractere cu alt șir sau cu absolut nimic. Cum poate Vicky să înlocuiască mai multe spații de pe un rând cu un singur spațiu? Nu se pot înlocui pur și simplu toate spațiile din document, pentru că atunci ar dispărea și spațiile care sunt indispensabile.

Soluția 1:

Dacă se știe numărul maxim de spații libere consecutive de pe un rând, se ia exponentul următoarei puteri a lui 2 și se introduce comanda de a înlocui două spații cu un spațiu de acel număr de ori.
De exemplu, dacă maximul de spații libere consecutive pe un rând este 7, următoarea putere a lui 2 este 8, adică
8=2^3
și se folosește comanda de 3 ori.

Soluția 2:

Se aleg două caractere care nu sunt niciodată adiacente în orice ordine le-ai pune. În exemplul nostru, @%.

  • Prima comandă: se înlocuiește fiecare spațiu cu @%.
  • A doua comandă: se înlocuiește fiecare %@ (deci ordinea inversă a caracterelor) cu nimic.
  • A treia comandă: se înlocuiește fiecare @% cu spațiu.
  •  

Susține Logicus.ro!

Dacă îți plac problemele de logică de pe www.logicus.ro și vrei să contribui și tu la eforturile noastre, ai acum ocazia de a ne susține!

Cu cât vrei să contribui?: