Определить, можно ли из символов заданной строки составить вашу фамилию - VB (61938)
Формулировка задачи:
Есть две строки : "a" - куча рандомных букв, "b"- фамилия
Я брал один первый символ своей фамилии (строка "b" ) и искал её первое вхождение в строку
На первый взгляд все работало отлично, пока я не поменял буквы местами
В итоге я нашел ошибку, что функция " a = a.Remove(j, 1) " не удаляет наше совпадение, а удаляет что-то другое.
Так вот собственно нужна помощь:
Что прописать нужно вместо
"a"
. Если есть такое вхождение , удалял этот символ из строки"a"
( Для того чтобы обойти повторные символы )
и добавлял к счетчику n=n+1 (n - получается количество наших совпадений) . В конце , если количесво совпадений"n"
равняется количеству букв нашей фамилии, то можно составить. Вот код мой :
Листинг программы
- 'Процедура сравнения символов двух строк
- Sub Vychis(ByVal a As String, ByVal b As String)
- Dim t As String
- Dim i, n, j As Integer
- n = 0
- 'Счетчик, определяющий количество сопадений символов
- For i = 1 To Len(b)
- t = Mid(b, i, 1)
- If InStr(a, t) <> 0 Then n = n + 1 : a = a.Remove(j, 1)
- Next i
- If n = Len(b) Then TextBox3.Text = "Можно" Else TextBox3.Text = "Нельзя"
- MsgBox(n, MsgBoxStyle.Information, "Количество совпадений")
- End Sub
"j"
, чтобы она удалила именно совпадение ?Решение задачи: «Определить, можно ли из символов заданной строки составить вашу фамилию»
textual
Листинг программы
- For i = 1 To Len(b)
- t = Mid(b, i, 1)
- 'IF INSTR(a, t) <> 0 THEN n = n + 1 : a = a.Remove(j, 1)
- If InStr(a, t) <> 0 Then n = n + 1: Mid(a, InStr(a, t), 1) = " "
- Next i
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д