교차 시퀀스
양의 정수 목록이 주어지면 각 요소가 이전 요소보다 크거나 같으면 증가하는 시퀀스A
라고 부릅니다 . 각 요소가 이전 요소보다 작거나 같으면이를 감소 시퀀스 라고합니다 .
일부 증가하는 시퀀스 :
[1,2,4,7]
[3,4,4,5]
[2,2,2]
[]
일부 감소 시퀀스 :
[7,4,2,1]
[5,4,4,3]
[2,2,2]
[]
횡단 서열 개의 이산 서브 번 증가 순서와 다른 감소 시퀀스로 분해 될 수있는리스트이다.
예를 들어 목록은 다음과 같습니다.
[3,5,2,4,1]
다음과 같이 분해 될 수 있기 때문에 교차 시퀀스입니다.
[3, 4 ]
[ 5,2, 1]
[3,4]
하위 시퀀스가 증가하고 하위 시퀀스 [5,2,1]
가 감소 하는 위치 는 어디 입니까? 우리는 이러한 한 쌍의 (증가, 감소) 하위 시퀀스를 교차 시퀀스 의 분해 라고 부릅니다 .
목록 :
[4,5,2,1,3]
교차 서열이 아니며; 하위 시퀀스를 증가 및 감소시키는 방법은 없습니다.
당신의 임무는 입력으로 양의 정수 목록을 취하는 프로그램 / 함수를 작성하는 것입니다; 교차 시퀀스 인 경우 두 목록을 분해 중 하나로 리턴하십시오. 목록이 교차 순서가 아닌 경우 일부 일관된 "거짓"값.
이것은 코드 골프입니다 . 각 언어에서 가장 짧은 프로그램 / 기능이 승자입니다.
규칙 :
- 입력이 유연합니다.
- 일반적인 허점은 금지되어 있습니다.
- 입력을 분해하는 여러 가지 유효한 방법이있는 경우 입력을 하나 또는 모두 출력 할 수 있습니다.
- 분해의 출력 형식은 유연합니다. 그러나 두 서브 시퀀스의 구별에 대해서는 분명해야합니다.
- 일관된 출력 값을 사용하여 입력이 교차 시퀀스가 아님을 표시 할 수 있습니다. 교차 시퀀스의 출력과 비교할 때 모호하지 않는 한. 답에 허위 값을 지정해야합니다.
테스트 사례 :
비교 차 False
순서를 나타내는 데 사용 :
[3, 5, 2, 4, 1] => [3, 4], [5, 2, 1]
[3, 5, 2, 4, 4, 1, 1] => [3, 4, 4], [5, 2, 1, 1]
[7, 9, 8, 8, 6, 11] => [7, 8, 8, 11], [9, 6]
[7, 9, 8, 8, 6, 11] => [7, 9, 11], [8, 8, 6] # also valid
[7, 9, 8, 8, 6, 11] => [7, 8, 11], [9, 8, 6] # also valid
[7, 8, 9, 10, 20, 30] => [7, 8, 9, 20, 30], [10]
[7, 8, 9, 10, 20, 30] => [8, 9, 10, 20, 30], [7] # this is also valid
[5, 5, 5] => [5, 5, 5], []
[4, 5, 2, 1, 3] => False
[3, 4, 3, 4, 5, 2, 4] => False
[3, 5, 2, 4, 4, 1, 1]
. 현재 테스트 사례를 사용하면 실제로 /가 되어야 할 때 >=
/로 벗어날 수 있습니다 . <
>=
<=