편집 : Lisp를 사용하는 경우 맨 아래에 바이트 수를 세는 지침을 제공했습니다.
목표 : 문자열을 숫자가 아닌 숫자로 나누고 정규 표현식을 사용하지 않고 각 문자열의 숫자만으로 구성된 배열을 반환하는 가장 짧은 함수를 만듭니다. 각 문자열에는 선행 0이 포함됩니다.
현재 순위 (카테고리로 구분) :
- C / C ++ / C # / Java : 68 (C) ....
- GolfScript / APL / J : 13 (APL)
- 다른 모든 것 : 17 (Bash, uses
tr
), 24 (Ruby)
규칙 :
(긴장에 대해 사과드립니다)
- 형식은 단일 문자열 인수를 가진 함수 여야합니다. 배열의 올바른 리턴에 필요한 경우 최대 두 개의 추가 인수가 추가 될 수 있습니다 (예 : sh / csh / DOS Batch는 리턴 할 추가 변수 참조가 필요함).
- 기본 함수 선언은 계산되지 않으며 다른 표준 라이브러리를 가져 오지 않습니다. `# include`,`import`s 및`using`은 포함되지 않습니다. 그 밖의 모든 것. 여기에는`# define`과 도우미 함수가 포함됩니다. 혼란을 드려 죄송합니다. 계산하지 않는 것 / 무시하는 것에 대한 유용한 안내서로 이것을 참조하십시오 (C 스타일 구문으로 작성 됨)
// 총계에 포함되지 않으며, 그렇지 않으면 생략 될 수 있습니다 // Java 표준 라이브러리의 절반과 같이 명백합니다. #include <stdio.h> import some.builtin.Class // 계산에 포함되지 않습니다. 위 참조 #define printf p // 총계로 계산 / * 다른 전 처리기 지시어 등이 포함됩니다. * / int i = 0; // 카운트 someFunction (); // 카운트 char [] [] myMainSplitFunction (char [] [] array) {// 계산하지 않습니다 // 여기에있는 모든 것이 중요 return returnArray; // 이것도 중요합니다. } // 계산에 포함되지 않습니다 / * 선언을 포함하여 여기에있는 모든 것이 중요합니다 * / char [] [] someHelperFunction (char [] 문자열) { // 물건 } // 이것도 중요하다
- 출력은 문자열 배열이거나 이와 유사해야합니다 (Java 및 유사한 배열 목록이 허용됨). 받아 출력의 예 :
String[]
,char[][]
,Array
,List
, 및Array
(객체). - 배열에는 가변 길이 문자열 기본 요소 또는 문자열 오브젝트 만 포함해야합니다. 아래에 예외를 제외하고는 빈 문자열이 반환되지 않아야합니다. 참고 : 문자열은 아래의 입력 및 출력 예제와 같이 연속적으로 일치하는 문자열을 포함해야합니다.
- 일치하는 것이 없으면 함수 본문은
null
빈 배열 / 목록 또는 빈 문자열을 포함하는 배열 / 목록을 반환해야 합니다. - 외부 라이브러리는 허용되지 않습니다.
- DOS 줄 끝은 2 바이트가 아닌 1 바이트로 계산됩니다 (이미 메타로 덮여 있지만 강조해야 함)
- 그리고 가장 큰 규칙은 정규식을 사용할 수 없다는 것입니다.
이것은 코드 골프 질문이므로 가장 작은 크기가 이깁니다. 행운을 빕니다!
다음은 입력 및 출력의 예입니다 (C 스타일 이스케이프 포함).
입력 : "abc123def456" 출력 : [ "123", "456"] 입력 : "aitew034snk582 : 3c" 출력 : [ "034", "582", "3"] 입력 : "as5493tax54 \\ 430-52@g9.fc" 출력 : [ "5493", "54", "430", "52", "9"] 입력 : "sasprs] tore \"re \\ forz " 출력 : null, [], [ ""] 또는 유사
귀하의 답변에 사용 된 바이트 수와 항상 행복한 골프를 넣으십시오!
Lisp에 대한 지침
Lisp 방언에서 무엇을하고 계산하지 않습니까?
;;; 옵션 1 (defun extract-strings (ab); 계산에 포함되지 않음) (물건) ;;; 여기에있는 모든 것이 중요합니다 ); 계산하지 않습니다 ;;; 옵션 2 (defun extract-strings (문자열 & aux (시작 0) (끝 0)); 계산에 포함되지 않습니다) (물건) ;;; 여기에있는 모든 것이 중요합니다 ); 계산하지 않습니다.다른 모든 람다는 바이트 수를 완전히 계산합니다.