Giả sử chúng ta có một chuỗi s và một danh sách các chỉ số, chúng có cùng độ dài. Chuỗi s sẽ được xáo trộn sao cho ký tự ở vị trí i, di chuyển đến chỉ số [i] trong chuỗi cuối cùng. Chúng ta phải tìm chuỗi cuối cùng.
Vì vậy, nếu đầu vào giống như s ="ktoalak" ind =[0,5,1,6,2,4,3], thì đầu ra sẽ là "kolkata"
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
fin_str:=một danh sách có kích thước bằng s và điền bằng 0
-
đối với mỗi chỉ mục i và ký tự v trong s, thực hiện
-
fin_str [ind [i]]:=v
-
-
nối từng ký tự có trong fin_str và quay lại
Ví dụ (Python)
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
def solve(s, ind): fin_str = [0] * len(s) for i, v in enumerate(s): fin_str[ind[i]] = v return "".join(fin_str) s = "ktoalak" ind = [0,5,1,6,2,4,3] print(solve(s, ind))
Đầu vào
"ktoalak", [0,5,1,7,2,4,3]
Đầu ra
kolkata