청크 + 자릿수 목록 열거 숫자를 그룹화하여

소수 자릿수 목록이 있습니다.

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

온라인으로 사용해보십시오!


답변

파이썬 2 , 44 바이트

l=input()
n=0
for i in l:n+=i!=l;l=i;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]

답변

Wolfram Language (Mathematica) , 29 바이트

Join@@(i=1;0#+i++&/@Split@#)&

온라인으로 사용해보십시오!