나는 (나의 응용 프로그램 기능) 놀라 울 정도로 좋은 x-webkit-speech
를 사용하여 음성 제어 응용 프로그램을 만드는 오전 뒤에 이야기,하지만 때로는 사용자 (나) 조금 덜컹 거리다. 단어의 합리적인 일부가 적당한 명령의 합리적인 부분과 일치하면 명령을 받아들이는 것이 좋을 것입니다. 그래서 나는 이라는 성배를 찾으십시오. 단어 집합에서 단어의 가장 큰 교차점의 알고리즘은입니다. 신선한 밝은 정신으로 나를 절망의 동굴에서 빠져 나올 수 있을까요? 이 회전 (tat_o)와 가장 긴 교차을 가지고 있기 때문에
예
"rotation" in ["notable","tattoo","onclick","statistically"]
문신 일치해야합니다. 통계적으로이 두 번째로 우수합니다 (tat 교차). 단어의 더 긴 부분을 무시해야하기 때문에 (보너스 조건이므로 아무런 문제없이 사용 가능합니다).
노트
- 나는 발음이
- 자바 스크립트 단련 시킨다면 언어의 서면 매우 가까운 체코 어를 사용하지만, 어떤 의사가 교차의
- 최소 길이 허용 알고리즘의 파라미터 여야합니다.
무엇을 시도 했습니까?
음, 꽤 embarassing하고 ....
for(var i=10; i>=4; --i) // reasonable substring
for(var word in words) // for all words in the set
for(var j=0; j<word.length-i; ++j) // search for any i substring
// aaargh... three levels of abstraction is too much for me
이 [편집 거리]과 동일하다 (http://en.wikipedia.org/wiki/Edit_distance)하지만 삭제는 0으로 가중치가 적용됩니까? –
거리가 청크에있는 여러 글자의 수를 의미하면 예. –
@JanTuron, "편집 거리"로, 그 이름으로 널리 사용되는 알고리즘을 의미합니다. –