Бурмотіння в череді (Бронза)#11195

Бурмотіння в череді (Бронза) (Розбір)

Нехай містить алфавіт, а — рядок, який почув Фермер Джон. Будемо послідовно обробляти символи рядка , щоразу знаходячи поточний символ в алфавіті . При цьому будемо рухатися по алфавіту зліва направо, починаючи новий прохід з його початку щоразу, коли потрібна буква знаходиться лівіше попередньої.

Приклад

У прикладі cowphabet впорядкований так само, як звичайний алфавіт. Бессі має пробурмотіти cowphabet як мінімум рази. Нижче показано, як Бессі бурмотіла, а великими літерами виділені ті букви, які почув Фермер Джон.

Реалізація алгоритму

Читаємо алфавіт та рядок .

cin >> alph;
cin >> s;

Кількість проходів по алфавіту будемо підраховувати у змінній .

cnt = 0;

Змінною будемо послідовно перебирати символи рядка .

for (i = 0; i < s.size(); )
{

Змінною будемо перебирати букви алфавіту. Як тільки в алфавіті зустрінеться чергова потрібна буква , збільшуємо на .

  for (j = 0; j < alph.size(); j++)
    if (s[i] == alph[j]) i++;
  cnt++;
}

Виводимо відповідь.

cout << cnt << endl;