카테고리 보관물: 코딩

코딩

N 번째 요소 반복 Hl r!입니다. 그런

우리는 한동안 (5 일 정확한) 문제 가 없었 으므로 한번가 봅시다.

문자열 s과 양의 정수가 주어지면의 n모든 n요소를 가져 와서 s반복 n하고 다시 넣습니다 s.

예를 들어 if n = 3s = "Hello, World!"이면 세 번째 문자는 모두 Hl r!입니다. 그런 다음 각 문자를 반복 n하여 생성 HHHlll rrr!!!합니다. 그런 다음 원래 문자를 반복 버전으로 바꾸어 최종 제품을 만듭니다.HHHellllo, Worrrld!!!

귀하의 언어로 가능한 가장 짧은 코드로이 작업을 수행해야합니다!

규칙

  • 이것은 이므로 바이트 단위의 가장 짧은 코드가 승리합니다.
  • n길이보다 작고 s0보다 커야합니다.
  • 의 첫 번째 문자는 s곳이다 n번째 문자에서 가져, 항상 반복되는 n시간을
  • s인쇄 가능한 ASCII의 (코드 포인트로 구성됩니다 0x20 (space)에를 0x7E (~))

테스트 사례

s, n => output

"Hello, World!", 3 => "HHHellllo,   Worrrld!!!"
"Code golf", 1 => "Code golf"
"abcdefghijklm", 10 => "aaaaaaaaaabcdefghijkkkkkkkkkklm"
"tesTing", 6 => "ttttttesTingggggg"
"very very very long string for you to really make sure that your program works", 4 => "vvvvery    veryyyy verrrry loooong sssstrinnnng foooor yoooou toooo reaaaally    makeeee surrrre thhhhat yyyyour    proggggram    workkkks"



답변

젤리 , 3 바이트

Ḣs×

입력은 s, n 으로 간주됩니다 .

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

작동 원리

Ḣs×  Main link. Argument: s, n

Ḣ    Head; yield s.
     This pops the list, leaving [n] as the main link's argument.
 s   Split s into chunks of length n.
  ×  Multiply each chunk by [n], repeating its first element n times.


답변

젤리 ,  6  5 바이트

누수로 인한 -1 바이트 (Python의 문자열 곱셈 사용)

×Jm¥¦

문자열과 숫자라는 두 가지 명령 줄 인수를 허용하고 결과를 인쇄하는 전체 프로그램.

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

어떻게?

×Jm¥¦ - Main link: list of characters, s; number, n   e.g. ['g','o','l','f','e','r'], 2
    ¦ - sparse application:
   ¥  - ...to indices: last two links as a dyad:
 J    -      range of length of s                          [1,2,3,4,5,6]
  m   -      modulo slicing by n (every nth entry)         [1,3,5]
×    - ...action: multiply  ["gg",'o',"ll",'f',"ee",'r']
      - implicit print                                 >>> ggollfeer


답변

자바 스크립트 (ES6), 46 바이트

카레 구문으로 입력을 (s)(n)받습니다.

s=>n=>s.replace(/./g,(c,i)=>c.repeat(i%n?1:n))

테스트 사례


답변

양성자 , 44 바이트

s=>n=>"".join(s[i]*(i%n?1:n)for i:0..len(s))

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


답변

C # (. NET 코어) , 84 82 바이트

n=>m=>{var s="";for(int i=0;i<n.Length;)s+=new string(n[i],i++%m<1?m:1);return s;}

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


답변

05AB1E , 8 7 바이트

@Emigna 덕분에 -1 바이트

ôʒć²×ì?

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

설명

ôʒć²×ì?    Arguments s, n  ("Hello, World!", 3)
ô          Split s into pieces of n  (["Hel", "lo,", ...])
 ʒ         Filter (used as foreach)
  ć          Extract head  ("Hel" -> "el", "H" ...)
   ²×ì       Repeat n times and prepend  ("el", "H" -> "HHHel" ...)
      ?      Print without newline


답변

PowerShell , 51 바이트

param($a,$n)-join($a|%{($_,("$_"*$n))[!($i++%$n)]})

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

입력을 char배열 $a및 숫자 로 취합니다 $n. 루프 스루 $a및 각 반복 은 의사 삼항으로의 색인을 기반으로 현재 문자 $_또는 현재 문자에을 곱한 값을 출력합니다 $n. 지수는 증분 기반 $i과 모듈로 중 두 가지 중에서 선택합니다 $n. 그런 다음 해당 문자가 -join다시 연결되고 문자열이 파이프 라인에 남습니다. 출력은 암시 적입니다.