>웹 프론트엔드 >JS 튜토리얼 >문자열의 왼쪽 및 오른쪽 회전을 위한 JavaScript 프로그램

문자열의 왼쪽 및 오른쪽 회전을 위한 JavaScript 프로그램

PHPz
PHPz앞으로
2023-09-15 16:01:12986검색

用于左旋转和右旋转字符串的 JavaScript 程序

문자열 왼쪽 회전은 접두사 쪽에서 시계 반대 방향으로 주어진 수의 문자를 이동하여 접미사쪽에 추가하는 것을 의미합니다. 마찬가지로, 문자열의 오른쪽 회전은 주어진 문자열의 문자가 시계 방향으로 이동하지만 정확히 왼쪽 회전의 반대 방향으로 이동하고 지정된 수의 문자가 접미사에서 가져와 문자열의 접두사에 추가됨을 의미합니다. 이 기사에서는 주어진 문자열의 왼쪽 회전 및 오른쪽 회전을 위한 JavaScript 프로그램을 구현합니다.

문제 소개

이 질문에서는 문자열과 숫자를 얻습니다. 이 숫자는 로프를 어느 방향으로든 몇 번 회전시켜야 하는지를 나타냅니다. 시계 방향 및 시계 반대 방향 회전에 대한 몇 가지 아이디어가 있으므로 주어진 문자열의 시작 또는 접두사 쪽 또는 끝 또는 접미사 쪽에서 일부 문자를 가져온 다음 해당 문자에서 제거하고 문자열 끝에 추가하는 것을 의미합니다.

문자열의 길이와 해당 문자열의 문자 빈도는 변경되지 않으며, 현재 문자열의 배열만 변경됩니다.

예를 들어 문자열이 주어지면: apple

그러면 주어진 문자열의 왼쪽 회전은 다음과 같습니다 -

  • 애플

  • 제발

  • leapp

  • eappl

  • 애플

주어진 문자열의 다섯 번째 회전이 현재 문자열과 동일하므로 더 이상 회전이 불가능함을 알 수 있습니다.

주어진 문자열의 오른쪽 회전은 다음과 같습니다 -

  • eappl

  • leapp

  • 제발

  • 프리야

  • 애플

주어진 문자열의 5번째 오른쪽 회전은 초기 문자열과 동일하다는 것을 알 수 있으므로 문자열을 더 회전해도 결과는 달라지지 않습니다.

위의 예에서 문자열을 길이만큼 왼쪽이나 오른쪽으로 회전하면 결국 초기 문자열과 동일한 문자열이 나온다는 결론을 내릴 수 있습니다. 따라서 주어진 회전 수가 문자열 길이보다 크면 패턴을 사용할 수 있으며 정확히 동일한 답을 제공합니다.

방법

문자열의 왼쪽 및 오른쪽 회전에 대한 기본 예를 살펴보았습니다. 이제 나중에 구현할 코드를 더 잘 이해할 수 있도록 단계별로 논의해 보겠습니다.

  • 먼저 주어진 문자열을 하나의 변수에 가져오고 필요한 스핀 수를 다른 변수에 저장합니다. 더 나은 비교를 위해 인쇄할 수도 있습니다.

  • 두 개의 함수를 생성하겠습니다. 첫 번째는 왼쪽 회전을 위한 함수이고 두 번째는 문자열의 오른쪽 회전을 위한 함수입니다.

  • 각 함수에 대해 주어진 문자열과 회전 변수 수를 매개변수로 전달합니다.

  • 왼쪽 회전 함수에서는 마지막 k 요소와 두 번째 남은 요소를 포함하는 두 하위 문자열을 가져와서 위치를 바꿉니다.

  • 오른쪽 회전 함수에서는 첫 번째 k 요소를 포함하는 두 개의 하위 문자열과 나머지 요소를 포함하는 두 번째 하위 문자열을 가져와서 위치를 바꿉니다.

으아악

주의

위 프로그램에서 우리가 지정한 "k" 또는 회전 수는 문자열 크기보다 작습니다. k가 문자열 크기보다 크면 위 코드는 오류를 발생시키지만 다음과 같이 소개 섹션에서 본 적이 있습니다. 문자열 길이가 여러 번 반복된 후의 회전은 문자열 길이가 주어진 현재 숫자의 최빈값을 구하여 계산할 수 있습니다. 안전한 편에 서기 위해 항상 이렇게 할 수 있습니다. - p> 으아악

여기서 str은 주어진 문자열입니다.

시간과 공간의 복잡성

위 코드의 시간 복잡도는 O(N)입니다. 여기서 N은 주어진 문자열의 크기입니다. 위의 코드에서는 문자열 문자를 가져와 다양한 방식으로 분리하고 추가하여 시간 복잡도를 선형으로 만듭니다.

위 코드의 공간 복잡도는 O(1)입니다. 왜냐하면 추가 공간을 사용하지 않고 단지 하나의 문자열을 다른 문자열에 저장하고 해당 공간이 답변에 사용되므로 추가 공간이 사용되지 않기 때문입니다. p>

결론

이 튜토리얼에서는 주어진 문자열의 왼쪽 회전과 오른쪽 회전을 위한 JavaScript 프로그램을 구현했습니다. 문자열을 왼쪽으로 회전한다는 것은 주어진 수의 문자를 시계 반대 방향으로 이동하는 것을 의미하고, 문자열을 오른쪽으로 회전하는 것은 주어진 수의 문자를 시계 방향으로 이동하는 것을 의미합니다. 우리는 문자열을 나누고 반대편에 접미사 또는 접두사를 추가하는 하위 문자열 개념을 사용했습니다. 주어진 프로그램의 시간 복잡도는 O(N)이고 공간 복잡도는 O(1)입니다.

위 내용은 문자열의 왼쪽 및 오른쪽 회전을 위한 JavaScript 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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