Lista de probleme 54

Filtrare

Se dă un șir de caractere care conține cuvinte formate din litere mici ale alfabetului englez și separate printr-un singur spațiu. Să se determine cel mai lung cuvânt care are toate literele distincte. Dacă nu există niciun cuvânt cu toate literele distincte se va afișa -1.

Se dă un șir de caractere care conține doar litere mici și mari ale alfabetului englez. Se parcurge șirul de la stânga la dreapta și dacă se întâlnește o secvență de litere alăturate egale, se șterge. Dacă în urma acestei operații se obține o nouă secvență de litere egale, se șterge și ea, ș. a. m. d.

Să se afișeze șirul obținut.

Se citeste un număr natural l și un șir de cel mult 10000 de caractere ce conține cuvinte despărțite între ele prin cate un spațiu. Fiecare cuvânt din șirul de caractere citit este format din cel mult l litere mari ale alfabetului englez. Să se scrie un program care afișează aceste cuvinte, în ordinea în care se citesc, pe linii de cel mult l caractere, astfel încât orice linie începe și se termină cu un cuvânt și oricare două cuvinte de pe aceeași linie sunt separate printr-un singur spațiu. Oricare linie este folosită la maxim, adică dacă un cuvânt are loc pe acea linie va fi pus acolo și nu va fi trecut pe linia următoare sau spart pe 2 linii.

Dan vrea să transforme un număr scris cu cifre romane într-un număr scris cu cifre arabe.

Se consideră un șir de caractere format din litere mici ale alfabetului englez. Să se determine lungimea minimă a unei secvențe care conține toate literele întâlnite în șirul inițial.

Se citește un text. Se cere criptarea/decriptarea acestuia folosind Cifrul Caesar.

Alexandru a invatat ca pe langa cifrele romane I, V, X, L, C, D, M mai exista cifrele (V), (X), (L), (C), (D), (M) care au valorile 5000, 10000, 50000, 100000, 500000 respectiv 1000000. Dandu-se un numar c:

  • pentru c=1, se da un numar scris cu cifre arabe si trebuie sa-l scrieti cu cifre romane.
  • pentru c=2, se da un numar scris cu cifre romane si trebuie sa-l scrieti cu cifre arabe.

#2715 ROT13

Laura vrea să vă scrie un șir de caractere pe care numai ea îl cunoaște. Realizează însă că, dacă l-ar scrie așa, pur și simplu, alte persoane ar putea să îl vadă și să îl înțeleagă, lucru care o îngrijorează. Astfel, fata află despre cum poate ascunde acest mesaj folosind codificarea în ROT13. (…)

#2295 Baza

Mirel a învățat astăzi la școală la ora de matematică despre baze de numerație. De exemplu a învățat cum să transforme un număr dintr-o bază oarecare în baza zece. Pentru acasă a primit următoarea temă:

Pentru un cuvânt dat, se înlocuiește fiecare literă a acestuia cu numărul de litere de dinaintea sa în alfabet, astfel litera a devine 0, litera b devine 1, litera c devine 2 ș.a.m.d. , iar cuvântul dat devine un număr în baza 26.

Să se transforme acest număr în baza zece.

Mircea şi Vasilică vor să-şi trimită mesaje pe care alţii să nu le înţeleagă. Au citit ei despre spioni şi modalităţi de a scrie mesaje şi, în final, au imaginat un mod de criptare a unui mesaj care foloseşte “cuvânt cheie” (le-a plăcut lor denumirea asta :-) ).

Alegându-şi un cuvânt cheie format numai din litere distincte, ei numără literele acestuia şi împart mesajul în grupe de lungime egală cu numărul de litere ale cuvântului cheie, şi le aşează una sub alta. Desigur, se poate întâmpla ca ultima grupă să fie incompletă, aşa că o completează cu spaţii. Apoi numerotează literele cuvântului cheie în ordinea apariţiei lor în alfabetul englez. În final, rescriu mesajul astfel: coloana de sub litera numerotată cu 1, urmată de coloana de sub litera numerotată cu 2, etc. înlocuind totodată şi spaţiile cu caracterul *.

Fiind date un cuvânt cheie şi un mesaj criptat, decodificaţi mesajul trimis de Mircea pentru Vasilică.