아니면 실제로 미로가 아니지만 여전히 그렇습니다.
규칙 :
입력 , 두 줄 문자열로 구성
*
,1
,x
와X
. 그 끈은 걷는 미로입니다. 줄의 길이 는 같습니다 .,
이 두 줄 사이에 (쉼표) 또는 편리한 구분 기호를 사용하여 입력을 문자열로 취할 수 있습니다 . 또는 두 줄을 함수에 대한 별도의 인수로 사용할 수 있습니다.출력 은 문자열을 종료하기 위해 수행해야하는 단계 수입니다 (마지막 단계는 문자열에서 사용자를 이동시키는 단계입니다).
첫 번째 기호 앞에 왼쪽 위 모서리 (더 높은 선)에서 시작 합니다.
각 단계마다 하나의 기호 (n 번째에서 (n + 1) 번째 위치 ) 씩 앞으로 이동합니다 . 그런 다음 밟는 캐릭터에 따라 결과가 다릅니다. 각 문자는 다음과 같습니다.
*
- 아무것도. 당신은 그것을 정상적으로 밟습니다.x
-일단 밟으면 라인을 전환하지만 처음부터 동일한 수평 거리를 유지하십시오. 예를 들어, 더 높은 선의 세 번째 위치를 밟고x
여기 에서 소문자를 만났습니다 . 그런 다음 즉시 하단 라인으로 이동하지만 다시 세 번째 위치에서 이동합니다.X
-회선을 전환하고 다음 위치로 이동하십시오. 예제는 동일하지만 세 번째 위치에서 네 번째 위치로 이동합니다 (따라서 네 번째 위치의 두 번째 줄에 있음).1
-다른 위치로 앞으로 이동하십시오.
각 문자가 작업을 수행하면 공백으로 바뀌고 더 이상 "작동"하지 않습니다.
예는 다음과 같습니다.
입력 :
x *
앞에서 말했듯이 첫 번째 줄의 첫 번째 기호보다 먼저 시작합니다. 첫 번째 단계는 문자로 이동
x
하고이 문자는 두 번째 줄로 전환합니다. 문자x
는 더 이상으로 기능하지x
않지만로 대체되었습니다*
. 이것은 후자의 예에서 더 관련이 있습니다. 당신은 이제 더 낮은 줄에 별표를 표시하고 있습니다.두 번째 단계는 앞으로 나아가고 줄을 빠져 나가서 미로가 완성되고 2 단계가 걸렸습니다.
출력
2
.입력 :
xX* x1*
첫 번째 단계 :에서
x
이동하면x
하단 라인으로 이동합니다 . 사용 된 문자가 별표로 대체되었다는 규칙이 있습니다. 그런 다음 첫 번째 줄로 돌아가지만 더 이상 사용되지 않으며x
별표가되었습니다. 따라서이 별표로 안전하게 이동하면 단계가 완료됩니다 (이제 첫 번째 줄의 첫 번째 위치에 있습니다).2 단계 : 계속 진행
X
하면 하단 라인으로 이동 한 다음 앞으로 이동합니다. 이제 두 번째 행 (별표)의 세 번째 위치에 있습니다 (이 포함 된 두 번째 위치를 방문한 적이 없음1
).3 단계 : 문자열을 종료하면서 앞으로 이동합니다.
출력 :
3
.
테스트 사례 :
입력:
*1* xxx
출력 :
3
. (1
당신이 세 번째 위치로 점프 하기 때문에 ). 거기에서는 두 번째 줄을 방문하지 않지만 입력의 일부가 필요합니다.입력:
*X*1*x x*1xx*
출력 :
4
.입력:
1x1x ***X
출력 :
3
.입력:
1*x1xxx1*x x*x1*11X1x
출력 :
6
.입력:
xXXXxxx111* **xxx11*xxx
출력 :
6
.
"\n\n"
두 줄 문자열입니다.
1
당신이 첫 번째 줄을 시작하기 전에 출력이 있어야한다고 생각합니다 . 그리고 한 단계 앞으로 나아가면 미로를 마칩니다 ...