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

ค้นหาสตริงย่อยที่เป็นไปได้ทั้งหมดหลังจากลบอักขระ k ตัวใน Python


เราได้รับสตริง งานที่จำเป็นคือการนำตัวอักษรหนึ่งตัวออกจากสตริงและพิมพ์ตัวอักษรที่เหลือในสตริง และเราต้องทำเช่นนี้สำหรับตัวอักษรแต่ละตัวของสตริง

มีลูปและเรนจ์

นี่เป็นแนวทางการเขียนโปรแกรมพื้นฐานที่เราแสดงรายการพารามิเตอร์ที่จำเป็นก่อน เช่น ประกาศสตริง สร้างตัวแปรสำหรับตำแหน่งเริ่มต้นและสิ้นสุด และสร้างตัวยึดชั่วคราวสำหรับตัวอักษรแต่ละตัว เราสร้างฟังก์ชันที่จะวนซ้ำตัวอักษรแต่ละตัวและสร้างสตริงของตัวอักษรที่เหลือ

ตัวอย่าง

list =[]def letterCombinations(s, t, start, end, index, k):if (index ==k):elem ='' สำหรับ j in range(k):elem +=t[j] list.append(elem) return i =start while (i <=end and end - i + 1>=k - index):temp[index] =s[i] letterCombinations(s, t, i + 1, end, ดัชนี + 1, k) i +=1stringA ='Apple'k =1temp =[0] * (len(stringA) - k)start =0end =len(stringA) - 1letterCombinations(stringA, temp, start, end, 0 , len(stringA) - k)print(set(list))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

{'pple', 'Aple', 'Appl', 'Appe'}

ด้วย itertools

ในแนวทางนี้ เราใช้โมดูล itertools ซึ่งมีฟังก์ชันชื่อชุดค่าผสม ที่ดูแลการสร้างชุดตัวอักษรที่เป็นไปได้ทั้งหมดหลังจากที่เราลบตัวอักษรหนึ่งตัวออกจากสตริงที่กำหนด

ตัวอย่าง

จาก itertools นำเข้าชุดค่าผสมstringA ='Apple'k =1# โดยใช้ชุดค่าผสม =set([''.join(i) สำหรับ i ในชุดค่าผสม (stringA, len (stringA) - k)]) พิมพ์ (res) 

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

{'Appl', 'Aple', 'Appe', 'pple'}