소개
나는 마술 거울로 가득 찬 방이있다 . 그들은 다른 마술 거울을 제외한 모든 아이템을 복제 할 수있는 신비한 유물입니다. 보다 명확하게, 항목의 복제 버전이 같은 거리에서 미러의 다른쪽에 나타납니다. 그러나 복제 미러와 항목 (원본 또는 복제본) 사이에 다른쪽에 다른 매직 미러가있는 경우 복제본이 형성되지 않습니다. 원본 항목은 미러의 왼쪽이나 오른쪽에있을 수 있으며 복제본은 다른쪽에 나타납니다. 또한 복제 항목 자체는 다른 미러에 의해 복제 될 수 있습니다. 항목은 다른 항목의 복제를 차단하지 않습니다 (복제 위치에 직접있는 경우 제외).
입력
입력은 .#|
빈 공간, 항목 및 마술 거울을 나타내는 문자로 구성된 문자열 입니다. 입력에 항상 하나 이상의 매직 미러가 있습니다.
산출
위의 규칙에 따라 각 매직 미러가 가능한 모든 항목을 복제 한 다른 문자열이 출력됩니다. 중복 항목이 나타나는 곳에 빈 공간이 항상 있다고 가정 할 수 있습니다 (따라서 경계를 벗어나지 않습니다).
예
입력 문자열을 고려하십시오
.#.|.....|......#
A B C D
여기서 우리는 명확성을 위해 몇 가지 입장을 표시했습니다. 미러는 B
item을 복제 A
하여 오른쪽으로 끝납니다.
.#.|.#...|......#
A B C D
C
그런 다음 미러 는 새 항목을 복제합니다.
.#.|.#...|...#..#
A B C D
미러 C
가 방해가되어 A
미러 B
가 항목을 복제 할 수 없습니다 . 또한 D
미러 B
가 반대편에 있기 때문에 item을 복제 할 수 없습니다 . 마찬가지로, 미러 B
는 방해가 D
되므로 미러 C
는 항목 이나 그 옆에있는 복제본을 복제 할 수 없으므로 올바른 출력입니다.
다른 예를 들어, 입력을 고려하십시오
.##..#...|#..##...|..##....#.
AB C DE FG H IJ K
미러 D
복제 할 수 A
및 B
오른쪽에, 그리고 E
및 G
(가) 왼쪽으로.
C
하고 F
있는 이미 서로 복제합니다. 끈은
.##.##..#|#..##.##|..##....#.
AB C DE FG H IJ K
미러 H
복제 할 수 있습니다 E
, F
그리고의 중복 A
과 B
오른쪽 및 I
왼쪽으로.
G
하고 J
있는 이미 서로의 복제, 그리고 거울 D
의 방법입니다 K
. 이제 우리는
.##.##..#|#..#####|#####..##.
AB C DE FG H IJ K
마지막으로, 미러 D
는 I
왼쪽에 복제본을 복제 할 수 있습니다 . 우리는 결국
.#####..#|#..#####|#####..##.
AB C DE FG H IJ K
규칙과 득점
전체 프로그램이나 함수를 작성할 수 있습니다. 가장 낮은 바이트 수가 이깁니다. 정규식 엔진을 사용하지 않는 제출물은 정규식 엔진을 사용하지 않는 제출물과 경쟁하며 (정규식 없음) 으로 표시 될 수 있습니다 .
테스트 사례
"|" -> "|"
"..|.." -> "..|.."
".#.|..." -> ".#.|.#."
"..#|.#." -> ".##|##."
".#..|....|.." -> ".#..|..#.|.#"
".|..|.#....." -> "#|#.|.#....."
"...|.#...|....#" -> ".##|##...|...##"
"......#|......." -> "......#|#......"
".#.|.....|......#" -> ".#.|.#...|...#..#"
".......|...#.##|...." -> "##.#...|...#.##|##.#"
"...#..||.......#..#...#" -> "...#..||.......#..#...#"
".##|.#....||#||......#|.#" -> ".##|##....||#||.....##|##"
".##..#...|#..##...|..##....#." -> ".#####..#|#..#####|#####..##."
".#|...||...|#...|..##...|#...." -> ".#|#..||.##|##..|..##..#|#..##"
"....#.|...#.|..|.|.....|..#......" -> "..#.#.|.#.#.|.#|#|#.#..|..#.#...."
"..|....|.....#.|.....|...|.#.|..|.|...#......" -> ".#|#...|...#.#.|.#.#.|.#.|.#.|.#|#|#..#......"