• В некоторой компьютерной игре вам необходимо убивать врагов, получая за это новые уровни. Враги бывают двух видов: обычные и боссы. Чтобы получить новый уровень, необходимо убить двух врагов или одного босса. При этом, если вы убиваете босса после того, как убили одного врага, вы получаете новый уровень, и начинаете получать следующий с нуля (то есть убитый до этого враг не считается). Вам дана последовательность убийств, в которой E обозначает обычного врага, а B - босса. Какой уровень вы получили, если изначально вы были на нулевом уровне? EBEEEEEBEEEBEEEEBEEEEEEEBBEEEEEEBBEBEEBBEBBEBEEEEBBBBEEBEEEEEEEBEEBBBEEBBBEEEEBBEEBEEEEBBEBBBBEBEBEE

Ответы 4

  • код на Ruby
    • Автор:

      kingqbrp
    • 5 лет назад
    • 0
  • Под "не учат в школе" имелось в виду использование регулярных выражний.
    • Автор:

      hurst
    • 5 лет назад
    • 0
  • спасибо
  • // PascalABC.NET 3.1, сборка 1204 от 24.03.2016begin  var lvl:=0;  var s:= 'EBEEEEEBEEEBEEEEBEEEEEEEBBEEEEEEBBEBEEBBEBBEBEEEEBBBBEEBEEEEEEEBEEBBBEEBBBEEEEBBEEBEEEEBBEBBBBEBEBEE';  var predE:=false;  foreach var c in s do    if c='E' then begin      if predE then begin predE:=false; lvl+=1 end      else predE:=true      end    else      if c='B' then begin predE:=false; lvl+=1 end;  Writeln(lvl,' level')end.Результат выполнения программы63 levelИ второй вариант, "как не учат в школе":// PascalABC.NET 3.1, сборка 1204 от 24.03.2016begin  var s:= 'EBEEEEEBEEEBEEEEBEEEEEEEBBEEEEEEBBEBEEBBEBBEBEEEEBBBBEEBEEEEEEEBEEBBBEEBBBEEEEBBEEBEEEEBBEBBBBEBEBEE';  Writeln(Regex.Matches(s,'E[EB]|B').Count,' Level')end.Результат выполнения аналогичный.
    • Автор:

      ty59
    • 5 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years