> 웹 프론트엔드 > JS 튜토리얼 > JavaScript에서 일치하는 부분 문자열 계산

JavaScript에서 일치하는 부분 문자열 계산

PHPz
풀어 주다: 2023-08-23 23:21:03
앞으로
1409명이 탐색했습니다.

在 JavaScript 中计算匹配子字符串

주어진 문자열에서 일치하는 부분 문자열을 정확하게 계산하는 능력은 개발자가 텍스트 데이터를 효율적으로 분석하고 조작할 수 있게 해주기 때문에 JavaScript 프로그래밍의 핵심 기술입니다. 이 기사에서는 문자열 조작의 세계를 자세히 살펴보고 잘 알려지지 않은 일련의 기술을 사용하여 JavaScript에서 일치하는 하위 문자열을 계산하는 복잡성을 탐구합니다. 기본 논리를 명확하게 하고 이러한 색다른 방법을 사용함으로써 개발자는 특정 하위 문자열의 발생 횟수를 효율적으로 계산하는 방법을 더 깊이 이해하고 텍스트 데이터에서 의미 있는 통찰력을 추출할 수 있습니다. JavaScript의 잠재력을 활용하고 풍부한 어휘를 확장하여 일치하는 하위 문자열을 계산하는 기술을 마스터하는 이 영감 넘치는 여정에 동참하세요.

문제 설명

주어진 문자열의 하위 시퀀스를 계산하고 "str"이라는 문자열 입력과 "arr"라는 문자열 입력 배열을 취하는 JavaScript 함수가 필요합니다. 목표는 "arr"의 각 요소를 검사하고 "str"의 하위 시퀀스인 문자열 수를 확인하는 것입니다. 하위 시퀀스는 나머지 문자의 상대적 순서를 유지하면서 원래 문자열에서 문자를 제거하여 형성된 문자열입니다. 함수는 "arr"과 "str"의 각 요소를 주의 깊게 비교하고 "str"에서 문자를 제거하여 구성할 수 있는지 여부를 판단해야 합니다. 그런 다음 "str"에서 발견된 정규화된 하위 시퀀스의 수를 나타내는 정수를 반환합니다.

입력 예 -

으아악

출력 예 -

str = 'abracadabra';
arr = ['a', 'bra', 'cad', 'dab'];
로그인 후 복사

출력 설명 -

주어진 입력에서 문자열 "str"은 "abracadabra"이고 배열 "arr"에는 ['a', 'bra', 'cad', 'dab']가 포함되어 있습니다.

"arr"의 각 요소를 분석해 보면 "a", "bra", "cad" 및 "dab"가 모두 "str"의 하위 시퀀스라는 것을 알 수 있습니다. 따라서 하위 시퀀스의 개수는 예상 출력인 4입니다.

방법

이 기사에서는 JavaScript에서 위의 문제를 해결하는 다양한 방법을 살펴보겠습니다. -

  • 무차별 대입 크래킹 방법

  • 이중 포인터 방법

방법 1: 무차별 크래킹

유효한 하위 시퀀스를 계산하는 무차별 접근 방식에는 문자열의 가능한 모든 하위 시퀀스를 생성하고 배열에서 해당 하위 시퀀스의 존재를 확인하는 작업이 포함됩니다. 각 문자열을 반복하여 하위 시퀀스를 재귀적으로 생성하거나 비트 연산을 사용하여 배열 요소와 비교합니다. 카운터는 매 게임마다 증가하여 총 개수를 제공합니다. 이 방법은 더 큰 입력의 경우 계산 비용이 많이 들기 때문에 동적 프로그래밍과 같은 대체 알고리즘이 더 최적의 솔루션을 제공합니다.

이 코드는 문자열 배열(arr)에서 주어진 문자열(str)의 하위 시퀀스 수를 계산하는 재귀 알고리즘을 구현합니다. countSubsequences 함수는 유효한 하위 시퀀스를 추적하기 위해 count 변수를 초기화합니다. generateSubsequences 함수는 입력 문자열을 반복하고 각 하위 시퀀스가 ​​배열에 있는지 확인하여 가능한 모든 하위 시퀀스를 생성합니다. 문자를 포함하거나 제외하는 다양한 가능성을 탐색하기 위해 재귀 호출이 수행됩니다. 기본 함수 호출은 문자열의 시작 부분부터 시작하는 하위 시퀀스를 생성합니다. count 변수가 최종 결과로 반환됩니다. 사용 예에서는 샘플 문자열 및 문자열 배열과 함께 이 함수를 사용하는 방법을 보여줍니다. 결과는 콘솔에 저장되고 인쇄됩니다.

으아악

출력

다음은 콘솔 출력입니다 -

으아악

방법 2: 두 포인터 방법

알고리즘은 배열의 각 문자열을 반복하고 두 개의 포인터를 사용합니다. 하나는 주어진 문자열에 지정되고 다른 하나는 현재 검사 중인 문자열에 지정됩니다. 이러한 포인터는 처음에 해당 문자열의 시작 문자에 위치하며 두 문자열 중 하나가 끝날 때까지 앞으로 전진합니다. 유효한 하위 시퀀스가 ​​결정될 때마다 숫자 표시기가 증가합니다. 마지막으로 알고리즘은 지표의 수치를 최종 결과로 제공합니다.

countValidSubsequences 함수는 문자열 배열(arr)과 대상 문자열(target)을 매개변수로 사용합니다. arr의 각 문자열을 반복하고 중첩 루프를 사용하여 해당 문자를 대상의 문자와 비교합니다. 문자가 일치하면 인덱스가 증가하고, 일치하지 않으면 대상의 인덱스만 증가합니다. 전체 문자열이 유효한 하위 시퀀스이면 개수가 증가합니다. arr의 모든 문자열을 반복한 후 함수는 최종 개수를 반환합니다.

으아악

출력

다음은 콘솔 출력입니다 -

으아악

결론

궁극적으로 JavaScript에서 일치하는 부분 문자열 계산에 대한 탐색을 통해 이 작업을 효율적으로 수행하는 데 사용할 수 있는 여러 가지 영리한 기술을 발견했습니다. 다양한 알고리즘을 사용하고 언어에서 거의 사용되지 않는 기능을 활용함으로써 프로그래머는 우아하고 유용한 솔루션을 설계할 수 있습니다. 하위 문자열 일치의 복잡성으로 인해 극단적인 경우와 잠재적인 성능 영향을 신중하게 고려해야 한다는 점을 인정해야 합니다. 그러나 이러한 새로 발견된 통찰력을 통해 개발자는 기존 접근 방식을 뛰어넘어 JavaScript의 모든 잠재력을 활용하여 하위 문자열을 영리하게 열거하고 조작할 수 있습니다. 전반적으로, 이 기사에서 공유된 심층적인 지식을 통해 프로그래머는 코딩 능력을 향상시키고 JavaScript에서 하위 문자열 계산의 새로운 차원을 열 수 있습니다.

위 내용은 JavaScript에서 일치하는 부분 문자열 계산의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿