>백엔드 개발 >C++ >각 단어의 문자를 재배열하여 산술수열(AP)을 형성할 수 있는지 확인

각 단어의 문자를 재배열하여 산술수열(AP)을 형성할 수 있는지 확인

王林
王林앞으로
2023-09-08 20:53:081224검색

각 단어의 문자를 재배열하여 산술수열(AP)을 형성할 수 있는지 확인

이 기사에서는 주어진 문자열에 있는 각 단어의 문자를 재배열하여 산술 수열(AP)을 형성할 수 있는지 확인하는 방법에 대해 설명합니다. 또한 C++를 사용하여 솔루션을 구현하고 코드 작동 방식을 설명하는 예제를 제공합니다.

산술수열(AP)

산술수열(AP)은 각 항이 이전 항에 상수 d를 더하여 얻어지는 수열입니다. 상수 d를 공차라고 합니다.

예를 들어 수열 1, 3, 5, 7, 9는 공차가 2인 산술 수열입니다.

방법

주어진 문자열에 있는 각 단어의 문자를 재배열하여 산술 수열을 형성할 수 있는지 확인하기 위해 다음과 같이 수행합니다 −

  • 주어진 문자열을 개별 단어로 분할하겠습니다.

  • 각 단어에 대해 문자를 알파벳순으로 정렬합니다.

  • 정렬된 단어에서 인접한 문자의 허용 오차를 계산합니다.

  • 인접 문자의 모든 쌍에 대한 공차가 동일한 경우 단어의 문자를 재배열하여 산술 시퀀스를 형성할 수 있습니다.

  • 주어진 문자열의 모든 단어에 대해 2~4단계를 반복합니다.

  • 모든 단어를 재배열하여 산술 수열을 형성할 수 있으면 true를 반환합니다. 그렇지 않으면 false를 반환합니다.

위 메소드를 C++로 구현해보겠습니다 -

으아아아

출력

으아아아

위 코드에서 canFormAP 함수는 문자열 s를 입력으로 받아들이고 문자열에 있는 각 단어의 문자를 재배열하여 산술 시퀀스를 형성할 수 있는 경우 true를 반환합니다. 기본 함수는 canFormAP 함수를 호출하고 "hello world" 문자열을 입력으로 사용하며 함수의 반환 값을 기반으로 해당 메시지를 인쇄합니다.

예제 테스트 사례

위 코드의 작동 방식을 이해하기 위해 예제 테스트 사례를 살펴보겠습니다. -

으아아아

이 예에서 주어진 문자열은 "빠른 갈색 여우가 게으른 개를 뛰어넘습니다"입니다. 문자열의 각 단어를 재배열하여 산술 수열을 형성할 수 있습니다. 예를 들어, "quick"이라는 단어는 허용오차가 2인 "cikqu"라는 산술 시퀀스로 재배열될 수 있습니다. 우리가 논의한 것처럼 "lazy"라는 단어는 허용오차가 11인 "alzy"라는 산술 수열로 재배열될 수 있습니다.

따라서 이 예에서는 주어진 문자열에 있는 각 단어의 문자를 재배열하여 산술 수열을 형성할 수 있으며, 코드의 출력은 "문자를 재배열하여 산술 수열을 형성할 수 있습니다."입니다.

결론

이 글에서는 주어진 문자열에 있는 각 단어의 문자를 재배열하여 산술 수열(AP)을 형성할 수 있는지 확인하는 방법에 대해 논의했습니다. 우리는 각 단어의 문자를 정렬하고 인접한 문자 쌍 간의 허용 오차가 동일한지 확인하는 간단한 접근 방식을 채택했습니다. 또한 C++로 솔루션을 구현하는 예를 제공하고 샘플 테스트 사례를 통해 설명합니다.

이 질문은 다양하게 실용적으로 적용될 수 있습니다. 예를 들어, 암호화에서는 문자열의 문자를 재배열하여 원본 메시지를 암호화할 수 있으며, 문자를 재배열하여 산술 시퀀스를 형성할 수 있는지 여부를 확인하는 것이 암호 해독 프로세스의 확인 단계로 사용될 수 있습니다.

위 내용은 각 단어의 문자를 재배열하여 산술수열(AP)을 형성할 수 있는지 확인의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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