수조: 좌회전 코드 난제 해결

패턴의 왼쪽 회전 작업은 패턴의 각 요소를 왼쪽으로 1단위씩 이동합니다.예를 들어 만약에 수조[1,2,3,4,5]에 대해 두 번 왼쪽 회전을 실행하면 이 수조는 [3,4,5,1,2]로 변한다.
n개의 정수와 하나의 숫자 d로 구성된 그룹을 정하고, 이 그룹에서 d개의 왼쪽 회전을 실행합니다.업데이트된 배열을 한 줄의 공백으로 구분된 정수로 인쇄합니다.
기능 설명
다음 편집기에서 함수를 완성합니다.그것은 반드시 얻은 정수 그룹을 되돌려야 한다.
rotLeft에는 다음과 같은 매개 변수가 있습니다.
  • 정수수 그룹 a
  • 정수 d, 회전 횟수.
  • 입력 형식
    첫 번째 줄은 두 개의 빈칸으로 구분된 정수 n과 d, a의 크기와 반드시 실행해야 하는 왼쪽 회전 횟수를 포함한다.
    두 번째 줄은 n개의 빈칸으로 구분된 정수 a[i]를 포함한다.
    제약조건
    1<=n<=10^5
    1<=d<=n
    1<=a[i]<=10^6
    출력 형식
    한 줄 n칸으로 구분된 정수를 인쇄합니다. d회 왼쪽 회전을 실행한 후 그룹의 최종 상태를 표시합니다.
    샘플 입력
    4
    1 2 3 4 5
    
    샘플 출력
    5 1 2 3 4
    
    해석하다
    왼쪽 회전을 수행하면 스토리지에 다음과 같은 변화가 발생합니다.
    [1, 2, 3, 4, 5]
    [2, 3, 4, 5, 1]
    [3, 4, 5, 1, 2]
    [4, 5, 1, 2, 3]
    [5, 1, 2, 3, 4]
    

    솔루션
    function rotLeft($a, $d) {
        $i = 0;
        $m = $d;
        if ($d > sizeof($a)) {
            $m = ($d % sizeof($a));
        }
        while ($i < $m) { 
            $a[] = $a[$i];
            $i++;
        }
        array_splice($a, 0, $m);
        return implode(' ', $a);
    }
    

    좋은 웹페이지 즐겨찾기