Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมสลับสตริงตามดัชนีที่กำหนดใน Python


ภาพรวม

ให้สตริง s และลิสต์ดัชนี ind ความยาวเท่ากัน ต้องการสร้างสตริงใหม่ที่ตัวอักษรตำแหน่ง i ใน s จะย้ายไปตำแหน่ง ind[i] ในสตริงผลลัพธ์

ตัวอย่าง

s = "ktoalak", ind = [0,5,1,6,2,4,3]

ผลลัพธ์: "kolkata"

ขั้นตอนการแก้ปัญหา

  1. สร้างลิสต์ fin_str ขนาดเท่า s เติมค่าเริ่มต้น (เช่น 0 หรือ '')
  2. วนลูปด้วย enumerate(s) ได้ i (ดัชนี) และ v (ตัวอักษร)
  3. กำหนด fin_str[ind[i]] = v
  4. รวมลิสต์เป็นสตริงด้วย "".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)