두 개의 문자열 n1과 n2가 제공됩니다. 이것들과 함께, 나는 숫자 K를 제공 받고있다.다른 문자열에서 최대 비슷한 하위 문자열 찾기
이제 나는 다음과 같은 3 개의 수 - i, j, l을 찾아야한다 : 길이가 l 인 인덱스 i에서 시작하는 부분 문자열은 atmost을 갖는다. K는 n2의 인덱스 j에서 길이 l 인 부분 문자열과 일치하지 않습니다. 그리고 이것은 K 차이와 가능한 최대 부분 문자열입니다.
예해야 명확 :
N1 = 브리즈
N2 = 토리노
K = 2
다음 출력 같아야
I = 2
J = 1
L = 4
[ "briz"와 "orin"은 2 개의 비 유사성을 가지고 있기 때문에]
현재 접근법 : n1의 각 하위 시퀀스에 대해 n2에서 최대 공통 부분 시퀀스를 찾으려고합니다 (atmo 세인트 K 불일치). 이 문제를보다 효율적으로 해결할 수있는 더 나은 방법을 가진 사람이 있습니까? I는 LCS 같은 동적 프로그래밍을 할 수 있다고 생각
정확하게 이해하면 대략적인 문자열 일치 유형 (http://en.wikipedia.org/wiki/Approximate_string_matching 참조) 인 것 같습니다. –
대략 일치하는 문자열과 아마도 가장 긴 공통 부분 문자열을 조합 한 것일 수 있습니다. http://en.wikipedia.org/wiki/Longest_common_substring_problem –
hackerrank : https://www.hackerrank.com/challenges/substring-diff –