소수 자릿수 목록이 있습니다.
4, 4, 4, 7, 7, 9, 9, 9, 9, 2, 2, 2, 4, 4
소수 자릿수 목록을 항목이라고합니다. 동일한 숫자와 인접한 숫자를 그룹화하여 이러한 항목에서 “청크”를 만들 수 있습니다. 1부터 시작하여 청크가 원래 목록에 나타나는 순서대로 1 씩 증가하는 각 청크에 고유 번호를 할당하고 싶습니다. 따라서 주어진 예제의 출력은 다음과 같습니다.
1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5
입력 형식
자릿수 목록. (0-9) 언어 내장 기능을 사용하여 원하는대로이 목록을 읽을 수 있습니다. 인코딩 : ASCII
출력 형식
구분 기호로 구분 된 일련의 10 진수입니다. 프로그램은 항상 동일한 구분자를 사용해야합니다. 분리 문자는 0 비트보다 길어야합니다. 인코딩 : ASCII
표준 허점이 적용됩니다.
답변
Python 3.8 (시험판) , 41 바이트
lambda l,n=0:[n:=n+(l!=(l:=x))for x in l]
:=
과제 표현 의 마술 해마 를 찬양하십시오 .
파이썬 2 , 42 바이트
n=0
for x in input():n+=x!=id;id=x;print n
답변
답변
APL (dzaima / APL) , 7 바이트 SBCS
익명의 암묵적 접두사 기능. 공백으로 분리하여 인쇄합니다.
+\1,2≠/
2≠/
쌍별 불평등
1,
앞에 1
+\
누적 합계
답변
젤리 , 6 5 바이트
ŒɠµJx
UnrelatedString 덕분에 1 바이트를 절약했습니다 !
어레이의 입력 및 출력 (개폐 브래킷 포함)
작동 원리
ŒɠµJx - Main link, takes one argument: [7, 7, 5, 5, 5, 1]
Œɠ - Get the lengths of consecutive elements: [2, 3, 1]
µ - Call these lengths A
J - range(length(A)) [1, 2, 3]
x - Repeat each element by the corresponding value in A: [1, 1, 2, 2, 2, 3]