C#
Нахождение одинаковой последовательности трех символов в двух переменных типа строка
Есть задача найти три подряд повторяющихся символа в двух переменных типа string, последовательности могут находится в любом месте переменной и длина этих двух строк может быть разной.Например первая переменная Accountfirst , вторая переменная sadfirRfv у них есть повторение трех подряд символов fir. Перепробовав три дня всяких решений, сделал решение с массивами, где идет перебор по разнице кодов символов, но оно получилось крайне громоздкое на 250 строк кода, думаю это не очень хороший вариант. Буду рад помощи с оптимальным решением кода, спасибо.
Один из способов решения этой задачи - это использование вложенных циклов. Вот пример кода на Python, который может решить эту задачу:
В примере выше мы вызываем эту функцию с аргументами s1, s2 и 3, чтобы найти общую подстроку длины 3 в строках s1 и s2. Результат работы функции выводится на экран.
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. Результат работы функции выводится на экран.
Даулет Касенов
Логичное решение, попробую его сделать на 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" };
}
}
Даулет Касенов
Я сделал коорче
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;
}
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;
}
Похожие вопросы
- Добавить символ в конце введённой строки, если количество символов нечётное, на C#
- (c#) Нужна помощь в работе со строками. (лучше если будет не само решение, а объяснение, спасибо)
- C#: Умножения чисел(чисел в строках) больших Int64 MaxValue без использования System.Numerics и BigInteger
- Как можно найти одинаковые элементы массива? С#
- Не компилируется текст после переменной
- C#. Написать программу для нахождения периметра и площади треугольника. СТороны вводить с клавиатуры
- Дана матрица 4x5 . Найти минимальный элемент в строке, номер которой вводится с клавиатуры.
- Зачем в C# нужны типы данных?
- Зачем нужно разделение на типы char и string в c# ?
- Почему в .NET нет встроенных типов данных с фиксированной точность?