해결하려고하는 문제에 대해서는 자세히 설명하지 않지만 큰 문자열을 처리하고 문자열에 겹치는 간격을 찾는 작업이 포함됩니다. 중복되는 간격 중 하나만 사용할 수 있으므로이 간격을 분리하고 개별적으로 분석하려고했습니다. 가능한 효율적으로이 작업을 수행하는 데 어떤 알고리즘이 사용되는지 궁금합니다.문자열 오버랩을 찾는 효율적인 알고리즘
속도가 가장 중요하다는 사실을 강조해야합니다. 가능한 한 빨리 간격을 분리해야합니다. 내 마음에 온 알고리즘은 인터벌 트리 (Interval Tree) 였지만, 이것이 우리가 할 수있는 최선인지는 확실하지 않았습니다.
간격 나무는 O (log n) 시간에 쿼리 할 수 있습니다. n은 간격 수이고 O (nlog n) 시간이 필요합니다.하지만 어느 쪽을 줄일 수 있는지 알고 싶습니다.
감사합니다.
편집 : 질문이 모호하다는 것을 알고 있습니다. 혼란에 대해 사과드립니다. 저는 사람들이 Aaron Huran의 답변과 그에 대한 의견을 살펴볼 것을 제안합니다. 그것은 많은 것을 명확히하는 데 도움이 될 것입니다.
에서 무료 코드 버전은 "문자열에서 중복 간격으로"무엇을 의미합니까있다? –
문자열 : "ThisIsATestStringToShowWhatIMeanByIntervals" 간격 : 0-4, 5-13, 8-19, 10-12 여기서 간격 5-13, 8-19 및 10-12가 겹치므로 하나만 사용할 수 있습니다. 그들. – efficiencyIsBliss
간격은 항상 시작점으로 정렬됩니까? – Triptych