iBug는 최근 복합 재료이지만 가치있는 재료로 만든 긴 막대를 얻었습니다. 막대가 너무 길어서 iBug가 크레딧으로 쉽게 팔 수 없기 때문에이를 줄이려고합니다. 막대는 깨지기 쉬운 마법 재료로 만들어져 부품이 부러지면 동일한 재료로 만들어진 막대의 모든 부분도 부러져 임의로 절단하기가 어렵습니다.
iBug는 막대를 가능한 한 많은 조각으로 자르려고합니다. 그는 매우 짧은 프로그램과 코드 골프를 좋아하기 때문에 자신의 문제를 추상적으로 분석했습니다.
iBug의 마술 막대는 다음과 같이 문자열 (또는 원하는 경우 배열 또는 일련의 문자)로 표시됩니다.
aaabbccccccbbbaaacccccaabbbaaaaa
줄의 각 글자는 하나의 마법 재료를 나타냅니다. 막대는 항상 RegEx와 일치하므로 막대에 ^\w*$
최대 63 개의 재료가있을 수 있습니다. "부분"은 공백으로 구분되지 않은 연속 된 문자 시퀀스입니다.
iBug는 0 개 이상의 문자 세트가 완전히 제거되고 (공백으로 대체 됨) iBug에 해당 번호를 알려 주면 최대 부품 수를 계산하는 프로그램을 작성하려고합니다.
예 1 :
In: aaabbccccccbbbaaacccccaabbbaaaaa
Out: 4
설명 : b
막대에서 완전히 제거하면 iBug에서 4 개의 부품을 얻을 수 있습니다. 그는 또한 제거하여 4 개 부분을 얻을 수 있습니다 b
및 c
아래와 같습니다,
aaabbccccccbbbaaacccccaabbbaaaaa # Original string
aaa cccccc aaacccccaa aaaaa # Remove 'b'
aaa aaa aa aaaaa # Remove 'b' and 'c'
이 막대에서 iBug가 얻을 수있는 최대 부품 수입니다
예 2 :
In: 111aa___9999____aaa99111__11_a_aa999
Result: 111aa 9999 aaa99111 11 a aa999
Out: 6
설명 : 밑줄 만 제거하면 iBug는 막대에서 6 개의 부품을 얻을 수 있으며 최대 값입니다.
예 3 :
In: __________
Out: 1
설명 : 무엇? 이걸 잘라 내고 싶어? 전혀 자르지 않으면 1 개의 부품 만 얻을 수 있습니다.
예 4 :
In:
Out: 0
설명 : 잘라낼 것이 없으므로 0입니다.
iBug가 프로그램이 준수하기를 원하는 규칙도 있습니다.
iBug는 표준 허점을 싫어하며 금지되어 있습니다.
작동하는 한 전체 프로그램 일 필요는 없습니다. 매개 변수에서 입력을 가져오고 리턴 값을 통해 출력하는 기능도 허용됩니다.
유연한 입력 및 출력이 허용됩니다. 프로그램이나 함수는 문자열이나 문자 배열 또는 다루기 쉬운 항목을 취할 수 있습니다. 숫자를 인쇄하거나 반환하여 출력을 줄 수 있습니다.
샘플 테스트 사례 (단, 이에 한하지 않음)
aaabbbaaa = 2
123456789 = 5
AaAaAaAa = 4
aaabcccdedaaabefda = 6
________ = 1
(empty) = 0
이것은 코드 골프 이기 때문에 각 언어에서 가장 짧은 프로그램 (바이트)이 이깁니다!
특별한
iBug는 스코어링에 영향을 미치지 않더라도 프로그램에 대한 설명을 제공 할 수 있으면 대단히 감사합니다 (길이는 바이트 단위 임).
2468
, 두 번째는 remove bd
.
2,4,6,8
첫 번째와 b,d,f
두 번째에서 제거 합니다.
123456789
5를 어떻게 산출합니까? 그리고 어떻게aaabcccdedaaabefda
6을 산출합니까? 이 두 테스트 사례에 대해 각각 2와 4를 얻습니다.