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

โปรแกรมหา Permutation ขนาด r ของสตริงใน Python

สมมติว่าเรามีสตริง s และตัวเลข r เราต้องแสดงการเรียงสับเปลี่ยน (Permutations) ของ r ตัวอักษรจาก s ใช้ฟังก์ชัน permutations() จากไลบรารี itertools

ตัวอย่าง s = "HELLO" r = 3 ผลลัพธ์เป็นรายการยาวมากของสตริงความยาว 3

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

  • vals := รายการ permutations ขนาด r จาก s
  • res := รายการใหม่
  • สำหรับแต่ละ x ใน vals: แปลง list ตัวอักษร x เป็นสตริงเพิ่มเข้า res
  • คืนค่า res

ตัวอย่างโค้ด

from itertools import permutations

def solve(s, r):
    vals = list(permutations(s, r))
    res = []
    for x in vals:
        res.append(''.join(x))
    return res

s = "HELLO"
r = 3
print(solve(s, r))

อินพุต

"HELLO", 2

เอาต์พุต

['HE', 'HL', 'HL', 'HO', 'EH', 'EL', 'EL', 'EO', 'LH', 'LE', 'LL', 'LO', 'LH', 'LE', 'LL', 'LO', 'OH', 'OL', 'OL', 'OE']