유효한 스도쿠 솔루션과 일치하고 유효하지 않은 스도쿠 솔루션과 일치하지 않는 정규식을 작성하십시오 . 입력은 스도쿠 의 롤링되지 않은 버전입니다. 즉 줄 구분 기호가 없습니다. 예를 들어 다음 보드 :
7 2 5 8 9 3 4 6 1
8 4 1 6 5 7 3 9 2
3 9 6 1 4 2 7 5 8
4 7 3 5 1 6 8 2 9
1 6 8 4 2 9 5 3 7
9 5 2 3 7 8 1 4 6
2 3 4 7 6 1 9 8 5
6 8 7 9 3 5 2 1 4
5 1 9 2 8 4 6 7 3
다음과 같이 주어질 것입니다 :
725893461841657392396142758473516829168429537952378146234761985687935214519284673
규칙은 아마도 지금까지는 일반적인 지식이지만 아마도 다음과 같은 경우에만 스도쿠 보드가 유효합니다.
- 각 행에서 숫자를 포함
1에9정확히 한 번만. - 각 열에서 숫자를 포함
1에9정확히 한 번만. - 아홉 3 × 3 subgrids 각각에서 숫자를 포함
1에9정확히 한 번만.
규칙
답은 추가 코드가없는 단일 정규식으로 구성되어야합니다 (선택적으로 솔루션 작동에 필요한 정규식 수정 자 목록 제외). 호스팅 언어로 코드를 호출 할 수있는 언어 정규식 기능 (예 : Perl e수정 자)을 사용해서는 안됩니다 .
이 도전 전에 존재했던 정규식 풍미를 사용할 수 있지만, 풍미를 지정하십시오.
정규식이 암시 적으로 고정되어 있다고 가정하지 마십시오. 예를 들어 Python을 사용하는 경우 정규 표현식을와 함께 사용하고 사용 re.search하지 않는다고 가정하십시오 re.match. 정규식이 전체 문자열과 일치하지 않아도됩니다. 유효한 솔루션의 경우 적어도 하나의 하위 문자열 (비어있을 수 있음)과 일치해야하며 유효하지 않은 솔루션과 일치하지 않습니다.
입력이 항상 81 양수의 문자열이라고 가정 할 수 있습니다.
이것은 정규식 골프이므로 바이트 단위의 가장 짧은 정규식이 이깁니다. 언어에서 /.../정규식을 나타 내기 위해 구분 기호 (일반적으로 )가 필요한 경우 구분 기호 자체를 계산하지 마십시오. 솔루션에 수정자가 필요한 경우 수정 자당 1 바이트를 추가하십시오.
테스트 사례
유효한 보드 :
123456789456789123789123456231564897564897231897231564312645978645978312978312645
725893461841657392396142758473516829168429537952378146234761985687935214519284673
395412678824376591671589243156928437249735186738641925983164752412857369567293814
679543182158926473432817659567381294914265738283479561345792816896154327721638945
867539142324167859159482736275398614936241587481756923592873461743615298618924375
954217683861453729372968145516832497249675318783149256437581962695324871128796534
271459386435168927986273541518734269769821435342596178194387652657942813823615794
237541896186927345495386721743269158569178432812435679378652914924813567651794283
168279435459863271273415986821354769734692518596781342615947823387526194942138657
863459712415273869279168354526387941947615238138942576781596423354821697692734185
768593142423176859951428736184765923572389614639214587816942375295837461347651298
243561789819327456657489132374192865926845317581673294162758943735914628498236571
243156789519847326687392145361475892724918653895263471152684937436729518978531264
498236571735914628162758943581673294926845317374192865657489132819327456243561789
978531264436729518152684937895263471724918653361475892687392145519847326243156789
341572689257698143986413275862341957495726831173985426519234768734869512628157394
유효하지 않은 보드 :
519284673725893461841657392396142758473516829168429537952378146234761985687935214
839541267182437659367158924715692843624973518573864192298316475941285736456729381
679543182158926473432817659567381294914256738283479561345792816896154327721638945
867539142324167859159482736275398684936241517481756923592873461743615298618924375
754219683861453729372968145516832497249675318983147256437581962695324871128796534
271459386435168927986273541518734269769828435342596178194387652657942813823615794
237541896186927345378652914743269158569178432812435679495386721924813567651794283
168759432459613278273165984821594763734982516596821347615437829387246195942378651
869887283619214453457338664548525781275424668379969727517385163319223917621449519
894158578962859187461322315913849812241742157275462973384219294849882291119423759
123456789456789123564897231231564897789123456897231564312645978645978312978312645
145278369256389147364197258478512693589623471697431582712845936823956714931764825
243561789829317456657489132374192865916845327581673294162758943735924618498236571
243156789529847316687392145361475892714928653895263471152684937436719528978531264
498236571735924618162758943581673294916845327374192865657489132829317456243561789
978531264436719528152684937895263471714928653361475892687392145529847316243156789
342571689257698143986413275861342957495726831173985426519234768734869512628157394
345678192627319458892451673468793521713524986951862347179246835534187269286935714
341572689257698143986413275862341957495726831173985426519234768734869512628517394
추가 테스트 사례의 경우 유효한 CJA 스크립트 를 사용 하여 유효한 보드를 입력으로 사용하고 임의로 임의의 순서로 섞어 새 유효한 보드를 제공합니다 (숫자 만 포함하고 공백이있는 경우 입력 형식과 무관).
정규식이 .NET 맛과 호환되는 경우 Retina를 사용하여 온라인으로 테스트 할 수 있습니다 . 유효한 솔루션은 0유효하지 않은 보드에 대해 인쇄 하고 유효한 보드에 대한 양의 정수를 인쇄해야합니다 . 모든 테스트 사례를 한 번에 실행하려면 이 템플릿을 사용 하고 두 번째 줄에 정규식을 삽입하십시오. 정규식 수정자가 필요한 경우 정규식 앞에 a `를 붙여 표준 수정 자 문자를 앞에 놓습니다.
valid boards어떻게 각 보드를 추출해야 합니까?