ภาพรวม
ให้สตริง s และลิสต์ดัชนี ind ความยาวเท่ากัน ต้องการสร้างสตริงใหม่ที่ตัวอักษรตำแหน่ง i ใน s จะย้ายไปตำแหน่ง ind[i] ในสตริงผลลัพธ์
ตัวอย่าง
s = "ktoalak", ind = [0,5,1,6,2,4,3]
ผลลัพธ์: "kolkata"
ขั้นตอนการแก้ปัญหา
- สร้างลิสต์
fin_strขนาดเท่าsเติมค่าเริ่มต้น (เช่น0หรือ'') - วนลูปด้วย
enumerate(s)ได้i(ดัชนี) และv(ตัวอักษร) - กำหนด
fin_str[ind[i]] = v - รวมลิสต์เป็นสตริงด้วย
"".join(fin_str)
ตัวอย่างโค้ด (Python)
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))
อินพุต
"ktoalak", [0,5,1,6,2,4,3]
เอาต์พุต
kolkata
ความซับซ้อน
- เวลา: O(n)
- พื้นที่: O(n)