>  기사  >  백엔드 개발  >  인접한 문자에 인접한 영문자가 없는 가장 긴 부분 문자열

인접한 문자에 인접한 영문자가 없는 가장 긴 부분 문자열

PHPz
PHPz앞으로
2023-09-11 15:49:02790검색

인접한 문자에 인접한 영문자가 없는 가장 긴 부분 문자열

문자열 조작 분야에서는 패턴을 식별하고 의미 있는 하위 문자열을 추출하는 것이 일반적인 작업입니다. 흥미로운 문제는 인접한 문자가 인접한 영어 문자가 아닌 가장 긴 부분 문자열을 찾는 것입니다. 이 기사에서는 C++를 사용하여 이 문제에 대한 효율적인 솔루션을 조사하고 명확한 설명과 샘플 테스트 사례를 제공합니다.

문제 설명

영문 소문자 문자열이 주어졌을 때, 인접한 문자가 영어 문자와 인접하지 않은 가장 긴 부분 문자열의 길이를 찾아야 합니다. 예를 들어 문자열 "abacabx"에서 이 조건을 충족하는 가장 긴 부분 문자열은 "abx"이며 길이는 3입니다.

방법 및 알고리즘

이 문제를 해결하기 위해 탐욕스러운 방법을 사용할 수 있습니다. 주어진 문자열을 반복하면서 현재 문자와 이전 문자가 인접한 영문자인지 확인합니다. 그렇다면 새로운 하위 문자열을 시작합니다. 그렇지 않으면 기존 하위 문자열을 확장합니다. 길이가 이전 최대값을 초과할 때마다 가장 긴 하위 문자열을 업데이트하면 원하는 결과를 찾을 수 있습니다.

C++ 구현

이것은 &minus 문제를 해결하는 C++ 코드입니다.

으아악

출력

으아악

코드 설명

findLongestSubstring 함수는 입력 문자열을 매개 변수로 받아들이고 인접하지 않은 영어 알파벳 문자의 가장 긴 하위 문자열 길이를 반환합니다.

maxLength와 currentLength를 각각 0과 1로 초기화합니다. 그런 다음 두 번째 문자부터 시작하여 문자열을 반복합니다. 현재 문자와 이전 문자 간의 절대 차이가 1이 아닌 경우 currentLength가 증가하여 현재 하위 문자열을 확장합니다. 그렇지 않고 현재 길이가 이전 최대값을 초과하면 maxLength를 업데이트하고 currentLength를 1로 재설정합니다.

마지막으로 찾은 최대 길이를 반환합니다. 기본 함수에서는 샘플 입력 문자열 "abacabx"를 제공하고 가장 긴 하위 문자열의 길이를 인쇄합니다.

예제 테스트 사례

우리 솔루션을 시연하기 위해 예제 문자열 "abacabx"를 고려해 보겠습니다.

들어가세요

으아악

이 예에서 인접한 영어 알파벳 문자가 없는 가장 긴 하위 문자열은 "abx"이며 길이는 3입니다.

결론

간단하고 효율적인 방법을 채택하여 C++를 사용하여 인접하지 않은 가장 긴 영문자 하위 문자열을 찾는 문제를 성공적으로 해결했습니다. 제공된 코드와 설명을 이해하면 문자열 조작과 관련된 유사한 문제를 해결할 수 있습니다.

위 내용은 인접한 문자에 인접한 영문자가 없는 가장 긴 부분 문자열의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제