Указать минимальное количество первых букв, по которым можно различить слова из заданного набора - VB
Формулировка задачи:
Указать минимальное количество первых букв, по которым можно различить слова из заданного набора(слова разделены пробелами)
Вообщем, прошу помощи, алгоритм нужно реализовать без использования массива.
Решение задачи: «Указать минимальное количество первых букв, по которым можно различить слова из заданного набора»
textual
Листинг программы
Function minPref(Stri As String) As Integer ':::: Строим индексный указатель Ptr$ = "" b% = 1 l% = Len(Stri) lmin% = l% Do k% = InStr(b%, Stri, " ") If k% = 0 Then lc% = l% - b% + 1 If lc% < lmin% Then lmin% = lc% Ptr$ = Ptr$ & Format$(b%, "000") Exit Do Else lc% = k% - b% If lc% < lmin% Then lmin% = lc% Ptr$ = Ptr$ & Format$(b%, "000") b% = k% + 1 End If Loop nw% = Len(Ptr$) \ 3 '::: Количество слов '::: Цикл до длины минимального слова For n% = 1 To lmin% '::: Список текущих префиксов Tmp$ = "" q% = 0 For i% = 1 To nw% '::: Начало очередного слова beg% = Val(Mid$(Ptr$, (i% - 1) * 3 + 1, 3)) '::: Текущий перфикс cPref$ = Mid$(Stri$, beg%, n%) '::: Проверка: нет ли такого For j% = 1 To (i% - 1) pPref$ = Mid$(Tmp$, (j% - 1) * n% + 1, n%) If pPref$ = cPref$ Then q% = -1 ' есть! Exit For End If Next j% If q% <> 0 Then Exit For Else ' нет - добавим Tmp$ = Tmp$ + cPref$ End If Next i% If q% = 0 Then ' если префиксы данной длины уникальны - ОК minPref = n% Exit Function End If Next n% '::: Иначе функция вернет 0 (задача не имеет решения) End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д