입력 문자열에서 문자의 출현을 찾으십시오 하는 횟수를 출력

도전

문자열 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 자 이상을 입력 할 수 있지만 사용자가 사양을 위반할 때 어떤 일이 발생할지 걱정할 필요가 없습니다.


답변

Pyth-3 바이트

같은 크기의 다른 덜 분명한 Pyth 답변. 입력을 세어 접습니다.

/FQ

테스트 스위트 .


답변

자바 스크립트, 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 자 문자열이라고 가정합니다.