Ответы пользователя по тегу Алгоритмы
  • Как ускорить поиск нескольких подстрок в строке в го?

    i229194964
    @i229194964
    Веб разработчик
    package main
    
    import (
    	"fmt"
    	"strings"
    )
    
    func main() {
    	text := "Это пример текста, в котором нужно проверить наличие нескольких подстрок."
    	substrings := []string{"пример", "нужно", "подстрок"}
    
    	// Собираем все подстроки в регулярную строку, разделенную символами "|"
    	regexStr := strings.Join(substrings, "|")
    
    	// Создаем регулярное выражение из строки
    	regex := regexp.MustCompile(regexStr)
    
    	// Ищем все совпадения регулярного выражения в тексте
    	matches := regex.FindAllString(text, -1)
    
    	// Выводим результаты
    	for _, match := range matches {
    		fmt.Println("Найдено:", match)
    	}
    }
    Ответ написан
  • Как найти несколько подмножеств одного надмножества в python?

    i229194964
    @i229194964
    Веб разработчик
    для этой задачи можно использовать алгоритм пересечения множеств .
    sets = [['/img0.jpg '],
            ['/img1.jpg'],
            ['/img10.jpg'],
            ['/img11.jpg', '/img9.jpg'],
            ['/img12.jpg', '/img15.jpg'],
            ['/img11.jpg', '/img13.jpg', '/img8.jpg', '/img9.jpg'],
            ['/img14.jpg'],
            ['/img15.jpg'],
            ['/img16.jpg'],
            ['/img14.jpg', '/img17.jpg'],
            ['/img18.jpg'],
            ['/img19.jpg', '/img22.jpg'],
            ['/img2.jpg'],
            ['/img19.jpg', '/img20.jpg', '/img21.jpg', '/img22.jpg'],
            ['/img19.jpg', '/img21.jpg', '/img22.jpg'],
            ['/img22.jpg'],
            ['/img23.jpg'],
            ['/img3.jpg'],
            ['/img3.jpg', '/img4.jpg'],
            ['/img0.jpg', '/img5.jpg'],
            ['/img6.jpg'],
            ['/img2.jpg', '/img7.jpg'],
            ['/img11.jpg', '/img8.jpg', '/img9.jpg'],
            ['/img9.jpg']]
    
    super_set = set(sets[0]) # берем первое подмножество
    
    # последовательно вычисляем пересечения супермножества с каждым из подмножеств
    for s in sets[1:]:
        super_set = super_set.intersection(set(s))
    
    # удаляем из супермножества все элементы, которые не принадлежат пересечению
    for s in sets:
        super_set.difference_update(set(s) - super_set)
    
    # оставшиеся элементы супермножества и будут искомым результатом
    result = sorted(list(super_set))
    print(result)
    Ответ написан
    Комментировать