Heim > Backend-Entwicklung > C++ > Listen Sie bei gegebener Zeichenfolge alle möglichen Längenzeichenfolgen auf, aus denen sie besteht

Listen Sie bei gegebener Zeichenfolge alle möglichen Längenzeichenfolgen auf, aus denen sie besteht

WBOY
Freigeben: 2023-08-27 20:05:06
nach vorne
883 Leute haben es durchsucht

Listen Sie bei gegebener Zeichenfolge alle möglichen Längenzeichenfolgen auf, aus denen sie besteht

In diesem Abschnitt erfahren Sie, wie Sie alle möglichen Zeichenfolgen beliebiger Länge generieren. Dabei wird jede Kombination von Zeichen benötigt, um die Zeichenfolge zu generieren. Wenn die Zeichenfolge beispielsweise ABC ist, wird Folgendes generiert: {A,B,C,AB,BA,BC,CB,CA,AC,ABC,ACB,BAC,BCA,CAB,CBA}

Sehen wir uns a an Beispiel zum Verstehen.

Algorithmus

printAllString(str)

Begin
   n := length of the string str
   count is 2^n – 1
   for each number 0 to count, do
      sub_str := empty string
      for j in range 0 to n, do
         if jth bit of the counter is set, then
            concatenate jth character of str with sub_str
         end if
      done
      repeat:
         print sub_string
      until next permutation of sub_string is not completed
   done
End
Nach dem Login kopieren

Example

#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
void printAllString(string str) {
   int n = str.size();
   unsigned int count = pow(2, n);
   for (int counter = 1; counter <count; counter++) { //generate 2^n - 1 strings
      string subs = "";
      for (int j = 0; j < n; j++) {
         if (counter & (1<<j)) //when the jth bit is set, then add jth character
            subs.push_back(str[j]);
      }
      do{
         cout << subs << endl;
      }
      while (next_permutation(subs.begin(), subs.end()));
   }
}
Nach dem Login kopieren

Output

A
B
AB
BA
C
AC
CA
BC
CB
ABC
ACB
BAC
BCA
CAB
CBA
D
AD
DA
BD
DB
ABD
ADB
BAD
BDA
DAB
DBA
CD
DC
ACD
ADC
CAD
CDA
DAC
DCA
BCD
BDC
CBD
CDB
DBC
DCB
ABCD
ABDC
ACBD
ACDB
ADBC
ADCB
BACD
BADC
BCAD
BCDA
BDAC
BDCA
CABD
CADB
CBAD
CBDA
CDAB
CDBA
DABC
DACB
DBAC
DBCA
DCAB
DCBA
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonListen Sie bei gegebener Zeichenfolge alle möglichen Längenzeichenfolgen auf, aus denen sie besteht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage