문자열은 영숫자 문자로 구성되며 각 문자는 결정된 위치와 연결됩니다. 문자 위치 범위는 0부터 문자열 길이까지입니다. 한 위치에서 완전히 다른 문자를 인접 문자라고 합니다.
이 기사에서는 한 위치에서 완전히 다른 문자열 배열을 입력으로 사용하는 코드를 개발합니다. 이 주제를 더 잘 이해하기 위해 아래 예를 살펴보겠습니다. -
예 1 - str - {"abc", "cba", "dbc", "acc"}
출력 - 2
예를 들어 아래 예에서는 두 쌍의 {"abc", "dbc"} 및 {"abc", acc"}가 생성될 수 있습니다. 이러한 문자열은 각각 하나의 문자 위치만 다릅니다.
이 글에서는 매핑을 활용하여 비슷한 문자열을 저장하는 코드와 총 문자열 쌍 수를 구하는 패턴을 개발하겠습니다. C++ 맵은 일정한 시간 복잡도로 데이터를 저장하고 검색하기 위해 키-값 쌍을 활용합니다.
substr() 메서드는 더 큰 문자열의 시작부터 끝-1까지 하위 문자열에 액세스하는 데 사용됩니다. 액세스할 모든 인덱스는 연속적이고 순서가 지정되어야 합니다.
매개변수 -
st - 시작 위치
end - 하위 문자열 액세스가 종료되는 끝 위치
문자열 벡터, 문자열을 허용합니다.
처음에는 조건을 충족하는 총 쌍 수를 저장하는 카운터를 유지 관리합니다.
와일드카드를 보존하는 패턴을 만족하는 문자열뿐만 아니라 동일한 문자열을 저장하기 위해 두 개의 맵을 유지관리하세요. 이 매핑이 m1이라고 가정해 보겠습니다.
유사한 문자열을 저장하려면 또 다른 맵을 유지하세요. 이 매핑이 m2라고 가정해 보겠습니다.
입력 배열에 대해 반복을 수행합니다.
유사한 유형의 문자열이 관찰될 때마다 m2 맵의 해당 개수가 증가합니다
하위 문자열은 와일드카드를 사용하여 문자열의 개별 문자를 대체하여 생성됩니다.
유사한 유형의 패턴이 관찰될 때마다 m1 플롯의 해당 개수가 증가합니다
m1과 m2에서 각각 관찰된 문자열 쌍의 합을 계산합니다.
이 합산된 값을 사용하여 개수를 늘리세요.
다음 C++ 코드 조각은 문자열 배열을 입력으로 사용하고 한 위치에서만 다른 쌍의 총 개수를 계산하는 데 사용됩니다. -
으아악Maps는 O(1) 시간 복잡도로 레코드 삽입 및 업데이트 프로세스를 시뮬레이션합니다. C++의 하위 문자열 메서드를 사용하면 지정된 인덱스 사이의 순서대로 문자열 문자에 액세스할 수 있습니다. n과 n-1의 곱을 2로 나눈 값은 임의 수의 쌍의 합을 제공합니다.
위 내용은 한 위치에서만 다른 문자열 쌍의 수를 센다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!