Nhận thức vị trí
Nhiệm vụ của bạn là tạo ra một chương trình, với mọi hoán vị của các ký tự của nó (bao gồm chương trình gốc), xuất ra các vị trí của mọi ký tự so với chương trình gốc.
Nếu chương trình của bạn là
Derp
bạn phải xuất
[0, 1, 2, 3]
(hoặc một số tương đương). Điều này là do D
đang ở trong 0
vị trí thứ, e
đang trong 1
st, r 2
nd, và p
các 3
thứ.
Chúng ta hãy lấy một chương trình khác là chương trình gốc, nhưng với các ký tự của nó được cho phép:
epDr
Bạn phải xuất
[1, 3, 0, 2]
vì e
đang ở trong 1
vị trí st của chương trình ban đầu, p
đang ở trong 3
vị trí thứ, D
những 0
thứ, và r
các 2
thứ.
Nếu chương trình gốc có hai ký tự lặp lại:
abcda -> [0, 1, 2, 3, 4]
Sau đó, để hoán vị, 0
và 4
trong mảng phải theo thứ tự tăng dần:
baadc -> [1, 0, 4, 3, 2] (0 first, then 4)
Quy tắc:
- Chương trình của bạn phải chứa ít nhất hai ký tự duy nhất.
Hầu hết các
floor(n/2)
nhân vật là giống nhau.aabb (acceptable) aaaabc (not acceptable, only floor(6/2) = 3 a's allowed)
Đầu ra của chương trình của bạn có thể là một mảng (hoặc một cái gì đó tương tự) chứa tất cả các vị trí của các ký tự hoặc một chuỗi với bất kỳ dấu phân cách nào, vì vậy những thứ này hoàn toàn tốt:
[0, 1, 2, 3] 0,1,2,3 0 1 2 3
12
trong R có hợp lệ không? Nó chỉ đơn giản là in 12
và nếu được thẩm thấu; 21
.