MedieC++17

În câte moduri păstrăm cuvântul?

Cerință

Primești cuvintele a și b. Alege din a o succesiune de poziții strict crescătoare, astfel încât literele de pe aceste poziții, citite în ordine, să formeze exact b. Determină numărul alegerilor posibile. Pozițiile nu trebuie să fie consecutive.

Date de intrare

Se citesc cuvintele a și b, pe linii separate.

Date de ieșire

Afișează numărul alegerilor de poziții, ca număr întreg exact, fără modulo. Dacă b nu poate fi obținut, afișează 0. Două alegeri care diferă prin cel puțin o poziție se numără separat, chiar dacă literele selectate sunt identice.

Restricții

1 ≤ lungimea fiecărui cuvânt ≤ 30; cuvintele conțin numai litere mici a-z. Fiecare poziție din a poate fi aleasă cel mult o dată.

Explicație

În primul exemplu, a=ababa și b=aba. Numerotând pozițiile de la 1, cele patru alegeri sunt (1,2,3), (1,2,5), (1,4,5) și (3,4,5). În al doilea exemplu, în a nu există litera b, deci răspunsul este 0.

Observații

Selecție Algo25 pentru pregătirea interviurilor: programare dinamică.

Reper tematic pentru pregătire: https://www.hackerrank.com/interview/interview-preparation-kit

Exemple

2 EXEMPLE

Exemplul 1

Exemplul 1 pentru „În câte moduri păstrăm cuvântul?”. Literele sunt afișate în ordinea din datele de intrare. Casetele separă pozițiile, inclusiv literele care se repetă.Exemplul 1, reprezentat vizual. Literele sunt afișate în ordinea din datele de intrare. Casetele separă pozițiile, inclusiv literele care se repetă.Mărește schema ↗

Date de intrare

ababa
aba

Date de ieșire

4

Exemplul 2

Date de intrare

a
b

Date de ieșire

0
UN MIC IMPULS

Ai nevoie de un indiciu?

Descoperă doar cât îți trebuie. Indiciile nu scad punctajul.

RÂNDUL TĂU

Trimite o soluție

Editor de cod

Se verifică autentificarea…

Deschide atelierul cu sugestii și teste locale în 4 limbaje →

Un pas, apoi următorul.Înapoi sus ↑