다음과 같이 프로그램 입력에서 일부 괄호를 확장해야합니다.
- 문자열 찾기 들 이 일치하는 괄호
[
와]
한 자리에, N 닫기 괄호 후. - 브래킷을 제거하십시오.
- 대체 들 자체가 반복 N 번. ( n 이 0이면 간단히 s 를 제거하십시오 .)
- 입력에 더 이상 일치하는 괄호가 없을 때까지 1 단계로 이동하십시오.
추가 규칙 및 설명 :
- 허용 된 수단을 통해 입력을 받고 출력합니다.
- 출력에서 후행 줄 바꿈이 허용됩니다.
- 입력에서 인쇄 가능한 ASCII 만 처리하면됩니다.
- 당신은 당신이 입력을 수신하지 않습니다 즉, 모든 괄호가 일치한다고 가정 할 수있다
[]]]]
나[[[[]
. - 각 닫는 괄호
]
뒤에 숫자 가 있다고 가정 할 수 있습니다 .
테스트 사례 :
Input -> Output
[Foo[Bar]3]2 -> FooBarBarBarFooBarBarBar
[one]1[two]2[three]3 -> onetwotwothreethreethree
[three[two[one]1]2]3 -> threetwoonetwoonethreetwoonetwoonethreetwoonetwoone
[!@#[$%^[&*(]2]2]2 -> !@#$%^&*(&*($%^&*(&*(!@#$%^&*(&*($%^&*(&*(
[[foo bar baz]1]1 -> foo bar baz
[only once]12 -> only once2
[only twice]23456789 -> only twiceonly twice3456789
[remove me!]0 ->
before [in ]2after -> before in in after
이것이 code-golf 이므로 각 언어에서 가장 짧은 답변이 이깁니다. 행운을 빕니다!
s
다른 대괄호가 포함되어서는 안된다고 명시 적으로 언급 할 가치가 있습니까? 예를 들어, [Foo[Bar]3]2
문자열을 Foo[Bar
3 번 확장하여 풀려고 하면 잘못된 상태가됩니다.Foo[BarFoo[BarFoo[Bar]2
[a[b]2c[d]2e]2
? 당신은 얻을 abbcddeabbcdde
확대 b
하고 d
, 첫번째하지만 ababcdbcdedbabcdbcdede
확대 a[b
와 d]2e
첫째.