1

Тема: AHK: Определение количества последовательностей

Здравствуйте. Есть строка, которая состоит из "+" и "-", например:

-+-++---+--+-+-

Подскажите, пожалуйста, как подсчитать количество последовательностей символов "-+-" и "+--".

За ранее благодарю.

2

Re: AHK: Определение количества последовательностей

А на участке -+-+- считается, что две последовательности -+-, или одна?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Определение количества последовательностей

А вам не тяжело предложить оба варианта? Как если считать за одно вхождение и за два...

4

Re: AHK: Определение количества последовательностей

Вроде так:

String := "-+-++---+--+-+-"
SubString := "-+-"

MsgBox, % "Без перекрытия — " . Occurrence(String, SubString, 0)
       . "`nС перекрытием — " . Occurrence(String, SubString, 1)

Occurrence(String, SubString, overlap := 0)
{
   Occurrence := start := 0
   While start := InStr(String, SubString, 0, (overlap || A_Index = 1) ? ++start : start + StrLen(SubString))
      Occurrence++
   Return Occurrence
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Определение количества последовательностей

Спасибо! Работает.

6

Re: AHK: Определение количества последовательностей

Немного подредактировал.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: Определение количества последовательностей

Да, я заметил. Еще раз спасибо.