상자 밖에서 생각하는 것이 달성해야 할 목표라고 계속 들었지만, 성공적으로하고 있는지 어떻게 알 수 있습니까?
이 딜레마를 해결하기 위해 이미 Brainwave-to-ASCII 변환기를 작성했습니다. 이론적으로는 다음과 같은 출력을 생성해야합니다.
#
+------------+ #
| thinking | #
| | #
+------------+ #
#
또는
#
+------+ #
| | thinking #
| | #
| | #
+------+ #
#
상자 밖에서 생각하고 있는지 아닌지를 쉽게 알 수 있습니다. ( #
출력의 일부가 아니며 새 줄을 나타냅니다.)
그러나 버그로 인해 때때로 출력의 작은 섹션 만 반환됩니다.
| | #
+---------+ #
thinking #
#
+#
|#
inking |#
#
#
작업
ascii-reprensentation을 읽고 상자 안에 있는지 , 상자 외부에 있는지 또는 입력에서 알 수 없는지를 반환하는 프로그램이나 함수를 작성 하여 Brainwave-to-ASCII- 번역기 출력 을 자동으로 분류하도록 도와주십시오 thinking
.
입력
목록으로 포함되거나 개행으로 구분되는 길이가 같은 문자열 세트
- 문자열
thinking
또는 유효한 접두사 또는 접미사 +-|
직사각형 상자 또는 그 유효한 부분을 형성하는 문자- 공백
- NO
#
, 입력 라인의 끝을 표시하기위한 시도에만 포함됩니다.
산출
- truthy 값 경우
thinking
상자 밖에 - falsy 값이있는 경우
thinking
박스에 - 별개의 제 어쩌면 그것을 입력 결정인지 할 수없는 경우 값
thinking
상자에 아닌지
예
진실한 :
#
+------+ #
| | thinking #
| | #
| | #
+------+ #
#
| | #
+---------+ #
thinking #
#
+#
|#
|#
inking |#
thinking #
-------+ #
++ # (thinking is not in the box, so it must be outside)
++ # (this is also the smallest possible box)
+ #
t#
+----+# (The box is not wide enough to contain "thinking")
---# (The box is not high enough to contain "thinking")
---#
문자열 입력으로 :
" \n +------+ \n | | thinking \n | | \n | | \n +------+ \n "
" | | \n +---------+ \n thinking "
" \n +\n |\n |\ninking |"
"thinking \n-------+ "
" ++ \n ++ "
"+ \n t"
"+----+"
"---\n---"
"g++"
"k\n+"
거짓 :
#
+------------+ #
| thinking | #
| | #
+------------+ #
#
+---------------#
| #
| #
| thinking #
| #
king | #
------+ #
+---#
|thi#
+---#
-#
n#
-#
문자열 입력으로 :
" \n +------------+ \n | thinking | \n | | \n +------------+ \n "
" +---------------\n | \n | \n | thinking "
" | \nking | \n------+ "
"+---\n|thi\n+---"
"-\nn\n-"
아마도:
thinking#
g|#
think#
-----#
| |# (box large enough to possibly contain the string)
| |#
+--#
| #
# (empty input)
문자열 입력으로 :
"thinking"
"g|"
"|t"
"-\ni"
"h\n-"
"think\n-----"
"| |\n| |"
" +--\n | "
""
규칙
- 이것은 code-golf 이므로 가능한 적은 바이트를 사용하십시오.
- 아마도 값만큼는 truthy / falsy 값과 다른 그리고 아마도 모든 입력들에 대해 동일 자유롭게 선택 될 수있다. 오류 일 수도 있습니다.
- 입력이 항상 유효하다고 가정 할 수 있습니다 (예 :
+-ghiknt|
상자 이외의 다른 문자를 포함하지 않음 , ...).
+\n+
, 상자에 너무 작은 상자