


Berechnen Sie binäre Zeichenfolgen der Länge N, die wiederholte Verkettungen von Teilzeichenfolgen sind
Der Zweck dieses Artikels besteht darin, ein Programm zu implementieren, das die Anzahl der binären Zeichenfolgen der Länge N zählt, die durch wiederholte Verkettung einer Teilzeichenfolge gebildet werden.
Das Ziel besteht darin, zu bestimmen, wie viele Binärzeichenfolgen der Länge N durch wiederholtes Verketten einzelner Teilzeichenfolgen des gegebenen Textes erstellt werden können, wobei N eine positive ganze Zahl ist.
Problemstellung
Implementieren Sie ein Programm, das die Anzahl der Binärzeichenfolgen der Länge N zählt, die wiederholt Teilzeichenfolgen verketten.
Beispiel Beispiel 1
Let us take the Input, N = 3
Output: 2
Erklärung
lautet:Erklärung
Nachfolgend sind mögliche binäre Zeichenfolgen der Länge N=3 aufgeführt, bei denen eine Teilzeichenfolge wiederholt verkettet wird.
"000":The substring "0" is repeatedly concatenated to form this string. "111":The substring "1" is repeatedly concatenated to form this string.
Wenn wir also die Gesamtzahl all dieser Zeichenfolgen zählen, erhalten wir eine Summe von 2. Daher ist die Ausgabe 2.
Beispiel Beispiel 2
Let us take the Input, N = 8
Output: 16
Erklärung
lautet:Erklärung
Nachfolgend sind mögliche Binärzeichenfolgen der Länge N=8 aufgeführt, die eine wiederholte Verkettung von Teilzeichenfolgen enthalten.
“00000000”: The substring "0" is repeatedly concatenated to form this string. “11111111”: The substring "1" is repeatedly concatenated to form this string. “01010101”: The substring "01" is repeatedly concatenated to form this string. “10101010”: The substring "10" is repeatedly concatenated to form this string. "00110011”: The substring "0011" is repeatedly concatenated to form this string. "11001100”: The substring "1100" is repeatedly concatenated to form this string. "11011101”: The substring "1101" is repeatedly concatenated to form this string. "00100010”: The substring "0010" is repeatedly concatenated to form this string. "10111011”: The substring "1011" is repeatedly concatenated to form this string. "01000100”: The substring "0100" is repeatedly concatenated to form this string. "10001000”: The substring "1000" is repeatedly concatenated to form this string. "00010001”: The substring "0001" is repeatedly concatenated to form this string. "11101110”: The substring "1110" is repeatedly concatenated to form this string. "01110111”: The substring "0111" is repeatedly concatenated to form this string. "01100110”: The substring "0110" is repeatedly concatenated to form this string. "10011001”: The substring "1001" is repeatedly concatenated to form this string.
Wenn wir also die Gesamtzahl aller dieser Zeichenfolgen addieren, erhalten wir eine Summe von 16. Daher beträgt die Ausgabe 16.
Methode
Um die Anzahl der binären Zeichenfolgen der Länge N zu zählen, die durch wiederholte Verkettung von Teilzeichenfolgen gebildet werden, verwenden wir die folgende Methode.
Eine Möglichkeit, dieses Problem zu lösen und die Anzahl der Binärzeichenfolgen der Länge N durch wiederholtes Verketten von Teilzeichenfolgen zu zählen.
Das obige Problem kann auf der Grundlage der Tatsache gelöst werden, dass jede mögliche Zeichenfolge eine wiederholte Teilzeichenfolge enthält, die C-mal verkettet ist. Daher muss die bereitgestellte Stringlänge N durch C teilbar sein, um alle aufeinanderfolgenden Strings zu generieren.
Ermitteln Sie also zunächst alle Teiler von N und ermitteln Sie dann für jeden möglichen Teiler C die Gesamtzahl aller potenziellen Zeichenfolgen, die durch Verkettung erstellt werden können. Diese Zahl kann mithilfe von 2C ermittelt werden. Um die Gesamtzahl für jeden rekursiven Aufruf zu ermitteln, wenden Sie dieselbe Technik auf den Divisor C an und subtrahieren ihn von 2C. Dabei wird auch die Anzahl der zwischen ihnen vorhandenen doppelten Zeichenfolgen berücksichtigt.
Algorithmus
Algorithmus zur Berechnung einer Binärzeichenfolge der Länge N durch wiederholte Verkettung der unten angegebenen Teilzeichenfolgen.
Erster Schritt − Start
Schritt 2 − Definieren Sie eine Funktion, um die Anzahl der Zeichenfolgen der Länge N zu zählen, sodass sie die Verkettung ihrer Teilzeichenfolgen darstellen.
Schritt 3 – Überprüfen Sie, ob der Status berechnet wurde
Schritt 4 – Speichern Sie das Ergebnis des aktuellen rekursiven Aufrufs oder den Wert der Zählung
Schritt 5 – Iterieren Sie über alle Teiler
Schritt 6 – Geben Sie die erhaltenen Ergebnisse zurück
Schritt 7 − Stopp
Beispiel: C++-Programm
Dies ist eine C-Programmimplementierung des obigen Algorithmus zum Zählen der Anzahl von binären Zeichenfolgen der Länge N, die durch wiederholte Verkettung von Teilzeichenfolgen gebildet werden.
// C++ program for the above approach #include<bits/stdc++.h> using namespace std; // Storing all the states of recurring recursive map<int, int> dp; // Function for counting the number of strings of length n wherein thatstring is a concatenation of its substrings int countTheStrings(int n){ //the single character cannot be repeated if (n == 1) return 0; // Checking whether the state is calculated already or not if (dp.find(n) != dp.end()) return dp[n]; // Storing those value of the result or the count for the present recursive call int res = 0; // Iterate through all of the divisors for(int d= 1; d <= sqrt(n); d++){ if (n % d== 0){ res += (1 << d) - countTheStrings(d); int div1 = n/d; if (div1 != d and d!= 1) // Non-Rep = Total - Rep res += (1 << div1) - countTheStrings(div1); } } // Storing the result of the above calculations dp[n] = res; // Returning the obtained result return res; } int main(){ int n = 8; cout<< "Count of 8-length binary strings that are repeated concatenation of a substring: "<< endl; cout << countTheStrings(n) << endl; }
Ausgabe
Count of 8-length binary strings that are repeated concatenation of a substring − 16
Fazit
Ähnlich können wir binäre Strings der Länge N berechnen, die wiederholte Verkettungen von Teilstrings sind.
In diesem Artikel wird die Herausforderung angesprochen, die Anzahl einer binären Zeichenfolge der Länge N zu ermitteln, die durch wiederholte Verkettung von Teilzeichenfolgen gebildet wird.
C++-Programmiercode wird hier zusammen mit dem Algorithmus zur Berechnung von Binärzeichenfolgen der Länge N aus wiederholt verketteten Teilzeichenfolgen bereitgestellt.
Das obige ist der detaillierte Inhalt vonBerechnen Sie binäre Zeichenfolgen der Länge N, die wiederholte Verkettungen von Teilzeichenfolgen sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



So verwenden Sie die LOCATE-Funktion in MySQL, um die Position eines Teilstrings in einem String zu finden. In MySQL gibt es viele Funktionen, die zum Verarbeiten von Strings verwendet werden können. Unter diesen ist die LOCATE-Funktion eine sehr nützliche Funktion, mit der die Position eines Teilstrings in einem String ermittelt werden kann. Die Syntax der LOCATE-Funktion lautet wie folgt: LOCATE(substring,string,[position]) wobei substring der zu findende Teilstring und string der zu findende Teilstring ist.

Gegeben seien zwei Strings str_1 und str_2. Das Ziel besteht darin, mithilfe eines rekursiven Verfahrens die Anzahl der Vorkommen der Teilzeichenfolge str2 in der Zeichenfolge str1 zu zählen. Eine rekursive Funktion ist eine Funktion, die sich innerhalb ihrer Definition selbst aufruft. Wenn str1 „Iknowthatyouknowthatiknow“ und str2 „know“ ist, beträgt die Anzahl der Vorkommen -3. Lassen Sie uns das anhand von Beispielen verstehen. Geben Sie beispielsweise str1="TPisTPareTPamTP", str2="TP" ein; geben Sie Countofoccurrencesofasubstringrecursi aus

Diese Funktion ähnelt der Funktion strtok(). Der einzige wesentliche Unterschied besteht in _r, einer so genannten reentrant-Funktion. Reentrant-Funktionen sind Funktionen, die während der Ausführung unterbrochen werden können. Diese Art von Funktion kann verwendet werden, um die Ausführung fortzusetzen. Daher sind reentrant-Funktionen Thread-sicher, was bedeutet, dass sie sicher von Threads unterbrochen werden können, ohne Schaden zu verursachen. Die Funktion strtok_r() verfügt über einen zusätzlichen Parameter namens context. Dadurch kann die Funktion an der richtigen Stelle wiederhergestellt werden. Die Syntax der Funktion strtok_r() lautet wie folgt: #include<string.h>char*strtok_r(char*string,constchar*limiter,char**

Bei diesem Problem müssen wir die längste nicht zunehmende Teilfolge einer gegebenen Zeichenfolge finden. Nicht aufsteigend bedeutet, dass die Zeichen entweder gleich oder in absteigender Reihenfolge sind. Da Binärzeichenfolgen nur „0“ und „1“ enthalten, sollte die resultierende Zeichenfolge entweder mit „1“ beginnen und mit „0“ enden oder mit „0“ oder „1“ beginnen und enden. Um dieses Problem zu lösen, zählen wir das Präfix „1“ und das Suffix „0“ an jeder Position der Zeichenfolge und ermitteln die maximale Summe aus Präfix „1“ und Suffix „0“. Problemstellung: Wir erhalten eine binäre Zeichenfolge str. Wir müssen die längste nicht zunehmende Teilsequenz aus der gegebenen Zeichenfolge finden. Beispiel Input–str="010100"Output–4 veranschaulicht die längste nicht-rekursive Methode

Die Funktion pack() packt Daten in eine Binärzeichenfolge. Syntax pack(format,args) Parameter format – das zu verwendende Format. Die folgenden Werte sind möglich: a – mit NUL aufgefüllte Zeichenfolge A – mit Leerzeichen aufgefüllte Zeichenfolge h – hexadezimale Zeichenfolge, niedriges Nibble zuerst H – hexadezimale Zeichenfolge, hohes Nibble zuerst c – vorzeichenbehaftetes Zeichen C – vorzeichenloses Zeichen s – vorzeichenbehaftetes Kurzzeichen (immer 16 Bit). , Maschinenbyte-Reihenfolge) S – unsigned short (immer 16 Bit, Maschinenbyte-Reihenfolge) n – unsigned short (immer 16 Bit, Big-Endian-Bytereihenfolge) v – unsigned short (immer 16 Bit, Little-Endian-Bytereihenfolge) i – vorzeichenbehaftete Ganzzahl (hängt von der Maschinengröße und der Byte-Reihenfolge ab) I – Keine vorzeichenbehaftete Ganzzahl (abhängig von

In der gegebenen Aufgabe erhalten wir eine Zeichenfolge bestehend aus 0 und 1; wir müssen die Gesamtzahl aller Permutationen ermitteln, die mit 1 beginnen. Da die Antwort eine große Zahl sein kann, nehmen wir sie modulo 1000000007 und geben sie aus. Input:str="10101001001"Output:210Input:str="101110011"Output:56 Wir werden dieses Problem lösen, indem wir kombinatorische Mathematik anwenden und einige Formeln aufstellen. Lösungsmethode Bei dieser Methode zählen wir die Anzahl der Nullen und Einsen. Angenommen, n ist die Anzahl der Einsen, die in unserer Zeichenfolge erscheinen, und m ist die Anzahl der Nullen, die in unserer Zeichenfolge erscheinen

In diesem Artikel wird ausführlich erläutert, wie PHP die Zeichenfolge von der Startposition zur Endposition einer Zeichenfolge in einer anderen Zeichenfolge zurückgibt. Der Herausgeber hält dies für recht praktisch, daher teile ich es Ihnen als Referenz mit diesem Artikel können Sie etwas abgewinnen. Verwenden Sie die Funktion substr() in PHP, um Teilzeichenfolgen aus einer Zeichenfolge zu extrahieren. Die Funktion substr() kann Zeichen innerhalb eines angegebenen Bereichs aus einer Zeichenfolge extrahieren. Die Syntax lautet wie folgt: substr(string,start,length) wobei: string: der ursprüngliche String, aus dem der Teilstring extrahiert werden soll. start: Der Index der Startposition des Teilstrings (beginnend bei 0). Länge (optional): Die Länge des Teilstrings. Wenn nicht angegeben, dann

Reguläre Ausdrücke sind ein leistungsstarkes Textverarbeitungstool, mit dem Zeichenfolgen in bestimmten Mustern abgeglichen werden können. In PHP werden reguläre Ausdrücke häufig bei der Zeichenfolgenverarbeitung, Formularvalidierung, Suche und Ersetzung usw. verwendet. In diesem Artikel wird erläutert, wie Sie mithilfe der regulären Ausdrücke von PHP bestimmte Zeichen aus einer Zeichenfolge in die Teilzeichenfolge am Ende extrahieren. Schauen wir uns zunächst ein Beispiel an. Angenommen, wir haben eine Zeichenfolge $str, die mehrere URLs enthält, die mit „http://“ beginnen, und wir möchten diese URLs extrahieren und in einem speichern
