도전
문자열 x
이 10 자이고 문자가 주어지면 string 에서 y
문자 y
가 발생 하는 횟수를 출력 하는 프로그램을 작성하십시오 x
.
바이트 단위의 가장 짧은 프로그램이 승리합니다.
예
Input: tttggloyoi, t
Output: 3
Input: onomatopoe, o
Output: 4
답변
Pyth, 3 바이트
/ww
예제 실행 :
$ pyth -c '/ww'
sdhkfhjkkj
k
3
물론 사용자는 첫 번째 입력에 10 자 이상을 입력 할 수 있지만 사용자가 사양을 위반할 때 어떤 일이 발생할지 걱정할 필요가 없습니다.
답변
답변
자바 스크립트, 32
(p=prompt)().split(p()).length-1
답변
배쉬, 24 자
x=${1//[^$2]}
echo ${#x}
샘플 실행 :
bash-4.3$ bash letter-count.sh tttggloyoi t
3
bash-4.3$ bash letter-count.sh onomatopoe o
4
답변
레티 나 , 12 바이트
(.)(?=.*\1$)
입력의 마지막 문자와 동일한 문자와 일치하는 정규 표현식입니다 (자체 제외). 단일 정규 표현식이 주어지면 Retina는 단순히 일치 횟수를 반환합니다.
답변
미로 , 32 29 27 24 바이트
),}{)-
@ , +);__
!-`{:}
단일 문자를 먼저 읽은 다음 계산할 문자열을 읽고 문자열에 널 바이트가 없다고 가정합니다.
설명
코드는로 시작 ),}
하여 스택의 맨 아래를로 설정하고 1
첫 번째 문자를 읽고 나중에 사용할 수 있도록 보조 스택으로 옮깁니다. 1
될 것입니다 카운터 (1 오프셋 나중에 취소되고 IP가 필요한 회전을 할 필요가됩니다).
이제 IP가 아래로 이동하여 검색 문자열의 첫 문자를로 읽습니다 ,
. `
올바른 회전 동작을 얻으려면 값을 다시 무시 합니다. STDIN에서 문자를 읽는 동안 IP는 이제이 루프를 따릅니다.
}{)-
, +);__
`{:}
{:}
저장된 문자 코드를 복사 +
하여 현재 값에 추가합니다. 결과 인 경우 0
(즉, 현재의 문자는 우리가 찾고있는 하나입니다), 똑바로 IP 이동 : -
간단히 없애는는 0
, )
증가 카운터, {}
no-op입니다.
그러나 이후의 결과 +
가 0이 아닌 경우 현재 문자를 계산하지 않습니다. 따라서 IP는 대신 우회전을합니다. 그것은 막 다른 길이므로 코드가 두 번, 한 번 앞으로 그리고 한 번 뒤로 실행됩니다. 즉,이 경우 실제 코드는 );___;)+-){}
입니다. );
0이 아닌 차이를 제거하고 ___
3을 0으로 밀고 ;
그 중 하나를 버립니다. )
나머지 두 개의 제로 단위로 하나 +
하나의 추가로 1
, -
카운터로부터이를 감산 )
증분 카운터. 다시 말해, 우리는 매우 정교한 노-업을 만들었습니다.
우리는 EOF, 명중하면 ,
푸시 -1
, `
변신 1
과 IP가 우회전을 걸립니다. 카운터에서 -
빼기 1
(초기 오프셋 취소) !
카운터를 인쇄하고 @
프로그램을 종료합니다.
답변
파이썬 3, 29 바이트
print(input().count(input()))
Meh, 이것은 쉬웠다. 입력이 10 자 문자열이라고 가정합니다.