단어 게임 해결사의 데이터 구조를 작성하려고합니다.주어진 집합이 집합 집합에 있는지 여부를 쿼리하기위한 데이터 구조
{A, A, D, E, I, L, P, T, V, Y} 형식의 약 150,000 세트를 저장해야합니다. (정규화 된 영어 단어, 즉 정렬 된 문자입니다. 멀티 세트에 동일한 문자를 두 번 포함 할 수 있습니다.)
다음 쿼리 종류에 대한 예/아니오 대답을 효율적으로 가져와야합니다. 주어진 부분 집합으로 설정? 예를 들어, 알려진 단어 중 어느 것도 {D, E, I, L, L, P} 집합을 포함합니까?
요구 사항 :
- 쿼리는
- 이 데이터 구조는 데이터 구조가 가 실시간으로을 구축 할 필요는
- 공간의 합리적인 금액 (예를 들어 < 50메가바이트)에 맞게해야 빨라야 시각; 미리 계산됩니다.
이 필요성에 잘 부합하는 데이터 구조가 있습니까? 이것은 목표 세트가 실제로 멀티 세트라는 점에서 StackOverflow의 otherset matching 질문과 조금 다릅니다.
을 찾을 경우
그것은) 1 그래서 아마 지나치게 복잡하고 혼란은 소리 예를 들어 anagram 소프트웨어를 찾으십시오. – Orbling
재밌 네요. 이것은 일종의 anagrams를위한 것입니다; 그러나, 나는 "근접 anagrams"또는 부분 anagrams을 찾을 필요가있다. 즉, 주어진 풀에서 글자를 다시 정렬하고 추가하여 애너그램을 찾아야합니다. – PBJ