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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.

이 기사는 브라우저에서 JavaScript 성능을 최적화하기위한 전략에 대해 설명하고 실행 시간을 줄이고 페이지로드 속도에 미치는 영향을 최소화하는 데 중점을 둡니다.

프론트 엔드 개발시 프론트 엔드 열지대 티켓 인쇄를위한 자주 묻는 질문과 솔루션, 티켓 인쇄는 일반적인 요구 사항입니다. 그러나 많은 개발자들이 구현하고 있습니다 ...

이 기사는 브라우저 개발자 도구를 사용하여 효과적인 JavaScript 디버깅, 중단 점 설정, 콘솔 사용 및 성능 분석에 중점을 둡니다.

이 기사는 Java의 컬렉션 프레임 워크의 효과적인 사용을 탐구합니다. 데이터 구조, 성능 요구 및 스레드 안전을 기반으로 적절한 컬렉션 (목록, 세트, 맵, 큐)을 선택하는 것을 강조합니다. 효율적인 수집 사용을 최적화합니다

이 기사는 소스 맵을 사용하여 원래 코드에 다시 매핑하여 미니어링 된 JavaScript를 디버그하는 방법을 설명합니다. 소스 맵 활성화, 브레이크 포인트 설정 및 Chrome Devtools 및 Webpack과 같은 도구 사용에 대해 설명합니다.

이 튜토리얼은 Chart.js를 사용하여 파이, 링 및 버블 차트를 만드는 방법을 설명합니다. 이전에는 차트 유형의 차트 유형을 배웠습니다. JS : 라인 차트 및 막대 차트 (자습서 2)와 레이더 차트 및 극지 지역 차트 (자습서 3)를 배웠습니다. 파이 및 링 차트를 만듭니다 파이 차트와 링 차트는 다른 부분으로 나뉘어 진 전체의 비율을 보여주는 데 이상적입니다. 예를 들어, 파이 차트는 사파리에서 남성 사자, 여성 사자 및 젊은 사자의 비율 또는 선거에서 다른 후보자가받는 투표율을 보여주는 데 사용될 수 있습니다. 파이 차트는 단일 매개 변수 또는 데이터 세트를 비교하는 데만 적합합니다. 파이 차트의 팬 각도는 데이터 포인트의 숫자 크기에 의존하기 때문에 원형 차트는 값이 0 인 엔티티를 그릴 수 없습니다. 이것은 비율이 0 인 모든 엔티티를 의미합니다

엔트리 레벨 타입 스크립트 자습서를 마스터 한 후에는 TypeScript를 지원하고 JavaScript로 컴파일하는 IDE에서 자신의 코드를 작성할 수 있어야합니다. 이 튜토리얼은 TypeScript의 다양한 데이터 유형으로 뛰어납니다. JavaScript에는 NULL, UNDEFINED, BOOLEAN, 번호, 문자열, 기호 (ES6에 의해 소개 됨) 및 객체의 7 가지 데이터 유형이 있습니다. TypeScript는이 기반으로 더 많은 유형을 정의 하며이 튜토리얼은이 모든 튜토리얼을 자세히 다룹니다. 널 데이터 유형 JavaScript와 마찬가지로 Null in TypeScript
