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 нет встроенных типов данных с фиксированной точность?
