줄기와 잎 플롯 모두 표시하지만, 마지막 숫자에 의해 결정됩니다 그룹의 숫자 값의 무리. 예를 들어,이 데이터 세트가 있다고 가정하십시오.
0, 2, 12, 13, 13, 15, 16, 20, 29, 43, 49, 101
이 줄기와 잎 그림을 만들 수 있습니다.
0|02
1|23356
2|09
3|
4|39
5|
6|
7|
8|
9|
10|1
첫 번째 줄의 줄기는 0이므로 "자리수"(뒤의 숫자) |
는 0과 10 사이의 값을 나타냅니다. 각 줄기의 잎이 분류됩니다. 잎이없는 줄기 (예 : 3)는 여전히 줄거리에 나타납니다. 101의 값은 100과 110 사이의 값이므로 줄기는 10 (100을 10으로 나눈 값)입니다.
당신의 도전 은 텍스트가 유효한 줄기와 잎 그림인지 확인하는 것입니다. 유효한 줄거리는 다음 규칙을 충족합니다.
- 데이터 범위의 모든 줄기 (예 : 10 개 그룹)에 대해 정확히 하나의 행을 갖습니다 (잎이없는 범위의 중간에 줄기 포함).
- 범위를 벗어난 줄기가 없습니다
- 모든 잎은 오른쪽으로 오름차순으로 정렬됩니다
- 모든 줄기는 오름차순으로 정렬됩니다
- (분리 외에 숫자 만 있음
|
)
소수 부분이있는 숫자를 다룰 필요는 없습니다. 스템에서 추가 선행 0을 승인하거나 거부 할 수 있지만 빈 스템은 허용되지 않습니다. 하나 이상의 값이 있습니다. 각 행에서 나뭇잎 다음에 여분의 공백 만 사용할 수 있습니다. 선행 및 / 또는 후행 줄 바꿈을 가정 할 수 있습니다. 모든 문자는 인쇄 가능한 ASCII입니다.
함수 나 프로그램은 유효한 플롯에 대한 정확한 값 또는 잘못된 플롯에 대한 잘못된 값을 반환하거나 (스크린 또는 표준 출력으로) 출력해야합니다. 표준 입력, 파일, 하나의 큰 문자열, 문자열 배열로 가장 편리한 입력을 입력 할 수 있습니다.
다음은 유효한 플롯 인 몇 가지 테스트 사례 입니다 (빈 줄로 구분).
2|00003457
3|35
4|799
5|3
99|3
100|0556
101|
102|
103|8
0|0
다음은 오른쪽에 주석이있는 유효하지 않은 플롯 인 테스트 사례 입니다.
|0 Blank stem
5|347 Missing a stem (6) in the range
7|9
4| Has a stem (4) outside the range
5|26
6|7
11|432 Leaves aren't sorted correctly
12|9989
5|357 Stems aren't sorted correctly
4|002
6|1
4|5 Duplicate stem
4|6
4|6
5|1
51114 No stem and leaf separator
609
1|2|03 Multiple separators
2|779|
4|8abcdefg9 Invalid characters
5|1,2,3
75 | 4 6 Invalid characters (spaces)
76 | 2 8 8 9
이것은 코드 골프이므로 가장 짧은 코드가 승리합니다! 표준 허점은 허용되지 않습니다.
4|;5|26;6|7
는 범위를 벗어난 첫 번째 줄기가있는 대신 비슷하지만 끝에 12|3;13|4559;14|
있습니다.
1|2|3
.