Computer >> Máy Tính >  >> Lập trình >> Python

Tìm tất cả các chuỗi con có thể có sau khi xóa k ký tự trong Python

chúng tôi được cung cấp một chuỗi. Nhiệm vụ bắt buộc là lấy ra một ký tự từ chuỗi và in các ký tự còn lại trong chuỗi. Và điều này chúng ta phải làm như vậy cho mỗi chữ cái của chuỗi.

Với các vòng lặp và dải ô

Đây là cách tiếp cận lập trình cơ bản, trong đó trước tiên chúng ta liệt kê các tham số cần thiết như khai báo chuỗi, tạo biến cho vị trí bắt đầu và kết thúc và tạo trình giữ chỗ tạm thời cho mỗi chữ cái. Chúng tôi tạo một hàm sẽ lặp lại từng chữ cái và tạo một chuỗi các chữ cái còn lại.

Ví dụ

 list =[] def letterCombination (s, t, start, end, index, k):if (index ==k):elem ='' for 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] letter Các kết hợp (s, t, i + 1, end, index + 1, k) i + =1stringA ='Apple'k =1temp =[0] * (len (stringA) - k) start =0end =len (stringA) - 1letterCombination (stringA, temp, start, end, 0 , len (stringA) - k) print (set (list)) 

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

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

với itertools

Trong cách tiếp cận này, chúng tôi sử dụng mô-đun itertools có một chức năng được đặt tên là kết hợp. Điều đó sẽ đảm bảo việc tạo tất cả các tổ hợp chữ cái có thể có sau khi chúng tôi xóa một chữ cái khỏi chuỗi đã cho.

Ví dụ

 từ itertools nhập các tổ hợpstringA ='Apple'k =1 # bằng cách sử dụng linksres =set ([' '. join (i) for i trong các tổ hợp (stringA, len (stringA) - k)]) print (res)  

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

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