유효한 스도쿠 솔루션과 일치하고 유효하지 않은 스도쿠 솔루션과 일치하지 않는 정규식을 작성하십시오 . 입력은 스도쿠 의 롤링되지 않은 버전입니다. 즉 줄 구분 기호가 없습니다. 예를 들어 다음 보드 :
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
어떻게 각 보드를 추출해야 합니까?