C#

Нахождение одинаковой последовательности трех символов в двух переменных типа строка

Есть задача найти три подряд повторяющихся символа в двух переменных типа string, последовательности могут находится в любом месте переменной и длина этих двух строк может быть разной.Например первая переменная Accountfirst , вторая переменная sadfirRfv у них есть повторение трех подряд символов fir. Перепробовав три дня всяких решений, сделал решение с массивами, где идет перебор по разнице кодов символов, но оно получилось крайне громоздкое на 250 строк кода, думаю это не очень хороший вариант. Буду рад помощи с оптимальным решением кода, спасибо.
Один из способов решения этой задачи - это использование вложенных циклов. Вот пример кода на Python, который может решить эту задачу:
 def find_common_substring(s1, s2, length): 
for i in range(len(s1) - length + 1):
substring = s1[i:i+length]
if substring in s2:
return substring
return None

s1 = 'Accountfirst'
s2 = 'sadfirRfv'
result = find_common_substring(s1, s2, 3)
if result:
print(f'Найдена общая подстрока: {result}')
else:
print('Общая подстрока не найдена')
В этом коде функция find_common_substring принимает две строки и длину искомой подстроки в качестве аргументов. Она использует вложенные циклы для перебора всех возможных подстрок длины length в первой строке и проверяет, содержится ли эта подстрока во второй строке с помощью оператора in. Если общая подстрока найдена, функция возвращает ее. В противном случае возвращается None.

В примере выше мы вызываем эту функцию с аргументами s1, s2 и 3, чтобы найти общую подстроку длины 3 в строках s1 и s2. Результат работы функции выводится на экран.
О0
Отдел 006
25 860
Лучший ответ
Даулет Касенов Логичное решение, попробую его сделать на C# ,спасибо, если получится скину сюда
Андрей Антонов Это ясельный Питон
Т.е просто нужно найти подстроку в строке что ли?
Скиньте хоть ваше решение, чтобы лучше понять что вам нужно
Даулет Касенов Если таким способом получится , т.е. найти одинаковую подстроку из трех символов в двух переменных типа string, то да
Даулет Касенов Код большой не умещается тут. Подстрока может быть всегда разная , две переменные которые я тут написал это для примера, они всегда будут меняться
Даулет Касенов Не обязательно будет fir, vj;tn может быть абсолютно любая последовательность, просто найти заданные три символа это просто. Проблема что эти три символа будут всегда разные , не заданные , программа должна НАПРИМЕР найти из последовательности 10 символов одной переменной и последовательности 23 символов другой переменной 3 символа подряд , которые для них общие. Например elfvnjefjelvkbtnjo и ешотупуbtndjvndkn, у них общая btn
Вот за несколько минут, только код надо в Visual Studio 2022 запускать
  internal class Program 
{

internal static void Main(string[] args)
{

foreach(var i in f("Accountfirst", "sadfirRfv")){
Console.WriteLine(i);
}

}

static List f(string s,string s2) {


if(s.Length >= 3 && s2.Length >= 3)
{
List list = new List();

for (int i = 0; i < s.Length - 2; ++i)
{
list.Add(s[i..(i + 3)]);
}

list = list.Where(i=>s2.Contains(i)).Distinct().ToList();

return list.Count > 0 ? list : new List() { "None" };
}

return new List() { "None" };
}


}
NT
Nurperzent Tenizbayev
3 422
Даулет Касенов Я сделал коорче

public bool CheckUserPassword(string user, string password)
{

for (int i = 0; i < user.Length-2; i++)
{
string repeat3 = user.Substring(i, 3);
if (password.Contains(repeat3))
{
return true;
}
}
return false;
}