Hướng dẫn find all subsets of a string c++ - tìm tất cả các tập hợp con của một chuỗi C++

Giải trình

Trong chương trình này, tất cả các tập hợp con của chuỗi cần phải được in. Tập hợp con của một chuỗi là ký tự hoặc nhóm các ký tự có trong chuỗi. Ví dụ: tất cả các tập hợp con có thể của một chuỗi "vui nhộn" sẽ là F, U, N, FU, UN, FUN."FUN" will be F, U, N, FU, UN, FUN.

Show

Để hoàn thành chương trình này, chúng tôi cần chạy hai cho các vòng lặp. Vòng ngoài được sử dụng để duy trì vị trí tương đối của ký tự thứ nhất và vòng thứ hai được sử dụng để tạo tất cả các tập hợp con có thể và in từng cái một.

Thuật toán của chương trình được đưa ra dưới đây.

Thuật toán

  1. Xác định một chuỗi.
  2. Tất cả các tập hợp con có thể cho một chuỗi sẽ là n*(n + 1)/2.
  3. Xác định một mảng chuỗi với độ dài của n (n+1)/2. Mảng chuỗi này sẽ giữ tất cả các tập hợp con của chuỗi.
  4. Vòng lặp đầu tiên sẽ giữ ký tự đầu tiên của tập hợp con.
  5. Vòng lặp thứ hai sẽ xây dựng tập hợp con bằng cách thêm một ký tự trong mỗi lần lặp cho đến khi đạt được kết thúc của chuỗi. Ví dụ. Chuỗi "ABC" Vòng lặp đầu tiên sẽ giữ vị trí của A, sau đó b sau đó c vòng thứ hai sẽ tập hợp chuỗi thành I = 1: A, AB sau đó ABC cho lần lặp cuối cùng cho I = 2: B và BC cho i = 3: C
    Eg. String "ABC"
    The first loop will hold the position of A, then B then C
    The second loop will subset the string into
    For i=1: A, AB then ABC for the last iteration
    For i=2: B and BC
    For i=3: C
  6. Thêm tập hợp con được hình thành trong mỗi lần lặp vào một mảng chuỗi.
  7. Các vòng lặp cuối cùng đi qua tất cả các tập hợp con được hình thành và in tất cả các tập hợp con.

Dung dịch

Python

Output:

All subsets for given string are: 
A
AB
ABC
B
BC
C

C

Output:

All subsets for given string are: 
A
AB
ABC
B
BC
C

Java

Output:

All subsets for given string are: 
A
AB
ABC
B
BC
C

C#

Output:

All subsets for given string are: 
A
AB
ABC
B
BC
C

PHP

Chương trình C này tìm thấy các tập hợp con có thể của chuỗi.

Dưới đây là mã nguồn của chương trình C để tìm các tập hợp con có thể của chuỗi. Chương trình C được biên dịch thành công và chạy trên một hệ thống Linux. Đầu ra chương trình cũng được hiển thị dưới đây.

  1. /*
  2.  * C Program to find the possible subsets of the String
  3.  */
  4. #include 
  5.  
  6. char string[50], n;
  7. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    0
  8.  
  9. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    2
  10. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    3
  11. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    4
  12.  
  13. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    6
  14. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    7
  15. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    8
  16. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    9
  17. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    0
  18. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    1
  19. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    2
  20. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    3
  21. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    4
  22.  
  23. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    6
  24.  
  25. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    8
  26. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    3
  27. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    0
  28. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    1
  29. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    2
  30. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    3
  31. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    4
  32. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    5
  33. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    6
  34. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    7
  35. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    8
  36. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    4
  37. /*
    0
  38. /*
    1
  39. /*
    2
  40. /*
    3
  41. /*
    4
  42. /*
    5
  43. /*
    6
  44. /*
    7
  45. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    7
  46. /*
    9
  47.  * C Program to find the possible subsets of the String
    0
  48. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    2
  49.  * C Program to find the possible subsets of the String
    2
  50. /*
    9
  51. All subsets for given string are: 
    A
    AB
    ABC
    B
    BC
    C
    
    4

 * C Program to find the possible subsets of the String
5

Sê -ri Giáo dục & Học tập toàn cầu Sanfoundry - 1000 chương trình C.

Tại đây, danh sách các cuốn sách hay nhất trong lập trình C, cấu trúc dữ liệu và thuật toán

Bước tiếp theo:

  • Nhận Giấy chứng nhận miễn phí trong chương trình C
  • Tham gia cuộc thi chứng nhận lập trình C
  • Trở thành người xếp hạng hàng đầu trong chương trình C
  • Thực hiện các bài kiểm tra lập trình C
  • Các bài kiểm tra thực hành theo chương: Chương 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10
  • Các bài kiểm tra giả chương: Chương 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10,

Hướng dẫn find all subsets of a string c++ - tìm tất cả các tập hợp con của một chuỗi C++

Manish Bhojasia, một cựu chiến binh công nghệ với hơn 20 năm @ Cisco & Wipro, là người sáng lập và CTO tại Sanfoundry. Ông sống ở Bangalore, và tập trung vào sự phát triển của nhân Linux, Công nghệ San, Cvanced C, Cấu trúc dữ liệu & Alogrithms. Giữ kết nối với anh ta tại LinkedIn.Sanfoundry. He lives in Bangalore, and focuses on development of Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Stay connected with him at LinkedIn.

Đăng ký các lớp học chính miễn phí của mình tại YouTube & Thảo luận kỹ thuật tại Telegram SanfoundryClasses.