Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

주어진 문자열로 구성할 수 있는 길이에 관계없이 가능한 모든 문자열은 무엇입니까?

<시간/>

이 섹션에서는 길이에 관계없이 가능한 모든 문자열을 생성하는 방법을 볼 것입니다. 이것은 문자열을 만들기 위해 각 문자 조합을 사용합니다. 예를 들어 문자열이 ABC이면 다음을 생성합니다. - {A, B, C, AB, BA, BC, CB, CA, AC, ABC, ACB, BAC, BCA, CAB, CBA}

아이디어를 얻기 위해 예제를 살펴보겠습니다.

알고리즘

printAllString(str)

Begin n :=문자열의 길이는 str count 가 2^n – 1 카운트할 각 숫자 0에 대해, do sub_str :=범위 0에서 n에 있는 j에 대한 빈 문자열, 카운터의 j번째 비트가 설정된 경우 수행, 그런 다음 str의 j번째 문자를 sub_str end와 연결합니다. 완료되면 반복:sub_string의 다음 순열이 완료되지 않을 때까지 sub_string을 인쇄합니다 doneEnd

예시

#include #include <알고리즘>#include 네임스페이스 사용 std;void printAllString(string str) { int n =str.size(); 부호 없는 정수 수 =pow(2, n); for (int counter =1; counter  

출력

영화