전체 출력
문자열 의 조합:
: , 。 , abc, a、b、c、ab、ac、bc、abc。
。
n m 。 。 , : , n-1 m-1 ; , n-1 m 。 。 :
void Combination(char* string)
{
if(string == NULL)
return;
int length = strlen(string);
vector<char> result;
for(int i = 1; i <= length; ++ i)
{
Combination(string, i, result);
}
}
void Combination(char* string, int number, vector<char>& result)
{
if(number == 0)
{
vector<char>::iterator iter = result.begin();
for(; iter < result.end(); ++ iter)
printf("%c", *iter);
printf("
");
return;
}
if(*string == '\0')
return;
result.push_back(*string);
Combination(string + 1, number - 1, result);
result.pop_back();
Combination(string + 1, number, result);
}
1 ,2 …… n , void Combination(char* string), for 。 , vector
:
, 2 , 1, , 0 , 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
두 가지 전체 배열 (중복수와 무중복수) 의 귀속 실현1. 중복수가 없습니다. 예: abc, 출력: abc\acb\bac\bca\cab\cba. 분석: 순서는 매번 알파벳을 첫 번째 문자로 취하고 뒤의 하위 문자열은 이 과정을 반복하며 전형적인 귀착이다. 2. 중복수가...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.