สมมติว่าเรามีสตริง 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']