


Prüft, ob ein String in drei Teilstrings aufgeteilt werden kann, wobei ein Teilstring ein Teilstring der anderen beiden Teilstrings ist
In diesem Problem müssen wir die gegebene Zeichenfolge so aufteilen, dass die dritte Teilzeichenfolge eine Teilzeichenfolge der ersten beiden Teilzeichenfolgen sein kann.
Überlegen wir uns eine Lösung. Die dritte Zeichenfolge kann nur dann eine Teilzeichenfolge der ersten beiden Zeichenfolgen sein, wenn die ersten beiden Zeichenfolgen alle Zeichen der dritten Zeichenfolge enthalten. Wir müssen also mindestens ein Zeichen mit einer Häufigkeit von mehr als 3 in der angegebenen Zeichenfolge finden und können die dritte Teilzeichenfolge dieses einzelnen Zeichens verwenden.
Problemstellung – Wir erhalten eine Zeichenfolge str mit N Kleinbuchstaben. Wir müssen prüfen, ob wir die Zeichenfolge in drei Teilzeichenfolgen a, b und c aufteilen können, sodass Teilzeichenfolge c eine Teilzeichenfolge von a und b ist. Geben Sie „Ja“ oder „Nein“ aus, je nachdem, ob 3 Teilzeichenfolgen gefunden werden können.
Beispiel
Input – str = "tutorialsPoint"
Output – ‘Yes’
Anleitung
Hier können wir die Zeichenfolge in „tu“, „torialsPoin“ und „t“ aufteilen. Daher ist die dritte Zeichenfolge eine Teilzeichenfolge der ersten beiden Zeichenfolgen.
Input – str = "tutorials"
Output – ‘No’
Anleitung
Wir können die Zeichenfolge basierend auf der gegebenen Bedingung nicht in drei Teilzeichenfolgen aufteilen, da die Häufigkeit eines Zeichens nicht größer als 3 ist.
Input – str = "hhhhhhhh"
Output – ‘Yes’
Anleitung
Gemäß den gegebenen Bedingungen können die drei Teilzeichenfolgen „h“, „h“ und „hhhhhh“ sein.
Methode 1
Bei dieser Methode verwenden wir ein Array, um die Häufigkeit jedes Zeichens zu speichern. Danach prüfen wir, ob Zeichen mit einer Häufigkeit größer oder gleich 3 vorliegen.
Algorithmus
Schritt 1 – Definieren Sie das „freq“-Array mit einer Länge von 26.
Schritt 2 – Durchlaufen Sie die Zeichenfolge, um die Häufigkeit der Zeichen zu zählen. Erhöhen Sie in der for-Schleife den Wert von freq[str[i] – „a“]. Hier ergibt str[i] – „a“ einen Index zwischen 0 und 26.
Schritt 3 – Durchlaufen Sie nun das Array „freq“ und geben Sie „true“ zurück, wenn der Wert an einem Array-Index größer als „3“ ist.
Schritt 4 – Geben Sie true zurück, wenn die Schleife endet.
Schritt 5 – Geben Sie „Ja“ oder „Nein“ basierend auf dem Rückgabewert der Funktion isSUbStringPossible() aus.
Beispiel
#include <bits/stdc++.h> using namespace std; // function to Check if a string can be split into 3 substrings such that one of them is a substring of the other two string isSubStringPossible(string str, int len){ // array to store the frequency int freq[26] = {0}; // Iterate over the string for (int i = 0; i < len; i++){ // count the frequency of each character freq[str[i] - 'a']++; } // Traverse the frequency array for (int i = 0; i < 26; i++){ // If the frequency of any character is greater than or equal to 3, then return "Yes." if (freq[i] >= 3){ return "Yes"; } } // Otherwise return "No"; } int main(){ string str = "tutorialsPoint"; int len = str.length(); cout << "The given string can be splited into 3 substrings such that one of them is a substring of the other two - " << isSubStringPossible(str, len); return 0; }
Ausgabe
The given string can be splited into 3 substrings such that one of them is a substring of the other two - Yes
Zeitkomplexität – O(N), wenn wir über die Zeichenfolge iterieren.
Raumkomplexität – O(1), da wir Arrays mit konstanter Länge verwenden.
Methode 2
Bei dieser Methode konvertieren wir zunächst die Zeichenfolge in ein Zeichenarray. Danach verwenden wir die Methode count(), um die Häufigkeit bestimmter Zeichen im Array zu zählen.
Algorithmus
Schritt 1 – Erstellen Sie ein Array der Größe „len + 1“, wobei „len“ die Stringlänge ist.
Schritt 2 – Kopieren Sie die Zeichenfolge mit der Methode strcpy() in ein char-Array.
Schritt 3 – Verwenden Sie eine for-Schleife für insgesamt 26 Iterationen.
Schritt 4 – Verwenden Sie in der for-Schleife die Methode count(), um die Anzahl der Vorkommen eines bestimmten Zeichens zu zählen.
Die Methode Schritt 5 – Geben Sie „true“ zurück, wenn die count()-Methode größer oder gleich 3 zurückgibt.
Schritt 6 – Geben Sie false zurück, wenn die Schleife endet.
count() akzeptiert als erstes Argument einen Verweis auf die Startposition, als zweites Argument einen Verweis auf die Endposition und als drittes Argument ein Zeichen.
Hier müssen wir den ASCII-Wert des Zeichens als Parameter übergeben und verwenden I + „a“, um den Wert zu erhalten.
Beispiel
#include <bits/stdc++.h> using namespace std; // function to Check if a string can be split into 3 substrings such that one of them is a substring of the other two string isSubStringPossible(string str, int len){ // converting str to char array. char char_array[len + 1]; // copy string to char array strcpy(char_array, str.c_str()); // make 26 iterations for (int i = 0; i < 26; i++){ // Using count() to count the occurrence of each character in the array, and return 'yes' if any character occurs more than 2 times. if (count(char_array, char_array + len, i + 'a') >= 2) return "YES"; } return "NO"; } int main(){ string str = "tutorials"; int len = str.length(); cout << "The given string can be splited into 3 substrings such that one of them is a substring of the other two - " << isSubStringPossible(str, len); return 0; }
Ausgabe
The given string can be splited into 3 substrings such that one of them is a substring of the other two - Yes
Zeitliche Komplexität – O(N), da die count()-Methode über das char-Array iteriert, um die Anzahl der Zeichen zu zählen. Außerdem benötigt die Methode strcpy() O(N) Zeit.
Raumkomplexität – O(N), weil wir die Zeichenfolge in einem Zeichenarray speichern.
Fazit
Wir haben zwei Möglichkeiten kennengelernt, einen String in drei Teilstrings aufzuteilen, sodass ein Teilstring ein Teilstring von zwei anderen Teilstrings sein kann. Der Code der zweiten Methode ist besser lesbar und anfängerfreundlicher, aber zeit- und platzaufwändiger.
Das obige ist der detaillierte Inhalt vonPrüft, ob ein String in drei Teilstrings aufgeteilt werden kann, wobei ein Teilstring ein Teilstring der anderen beiden Teilstrings ist. 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


![Rechtschreibprüfung funktioniert in Teams nicht [Behoben]](https://img.php.cn/upload/article/000/887/227/170968741326618.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Uns ist aufgefallen, dass die Rechtschreibprüfung für Teams manchmal nicht mehr funktioniert. Die Rechtschreibprüfung ist ein wesentliches Werkzeug für eine effektive Kommunikation, und jeder Angriff darauf kann zu erheblichen Störungen des Arbeitsablaufs führen. In diesem Artikel untersuchen wir häufige Gründe, warum die Rechtschreibprüfung möglicherweise nicht wie erwartet funktioniert, und wie Sie sie in den vorherigen Zustand zurückversetzen können. Wenn die Rechtschreibprüfung in Teams nicht funktioniert, befolgen Sie die in diesem Artikel genannten Lösungen. Warum funktioniert die Rechtschreibprüfung von Microsoft nicht? Es kann mehrere Gründe dafür geben, dass die Rechtschreibprüfung von Microsoft nicht ordnungsgemäß funktioniert. Zu diesen Gründen gehören inkompatible Spracheinstellungen, deaktivierte Rechtschreibprüfung, beschädigte MSTeam- oder MSOffice-Installation usw. Außerdem veraltete MSTeams und MSOf

Das ausgeführte Programm wird als Prozess bezeichnet. Ein Prozess kann eine Anwendung sein, die auf dem aktuellen Betriebssystem ausgeführt wird, oder eine Anwendung, die mit dem Betriebssystem zusammenhängt. Wenn eine Anwendung an das Betriebssystem gebunden ist, erstellt sie zunächst einen Prozess, um sich selbst auszuführen. Andere Anwendungen sind zur Ausführung auf Betriebssystemdienste angewiesen. Bei den meisten Anwendungen handelt es sich um Betriebssystemdienste und Hintergrundanwendungen, die das Betriebssystem, die Software und die Hardware warten. In Python gibt es verschiedene Methoden, um zu überprüfen, ob die Anwendung geöffnet ist oder nicht. Lassen Sie uns sie einzeln im Detail kennenlernen. Verwenden der Funktion psutil.process_iter() psutil ist ein Modul in Python, das Benutzern eine Schnittstelle zum Abrufen von Informationen über laufende Prozesse und Systemauslastung bietet.

Ein iterierbares Objekt ist ein Objekt, über dessen alle Elemente mithilfe einer Schleife oder einer iterierbaren Funktion iteriert werden kann. Listen, Zeichenfolgen, Wörterbücher, Tupel usw. werden alle als iterierbare Objekte bezeichnet. In der Python-Sprache gibt es verschiedene Möglichkeiten zu überprüfen, ob ein Objekt iterierbar ist. Schauen wir uns das einzeln an. Verwenden von Schleifen In Python gibt es zwei Schleifentechniken: Eine verwendet die „for“-Schleife und die andere die „while“-Schleife. Mithilfe einer dieser beiden Schleifen können wir prüfen, ob ein bestimmtes Objekt iterierbar ist. Beispiel In diesem Beispiel versuchen wir, ein Objekt mithilfe einer „for“-Schleife zu iterieren und prüfen, ob es iteriert wird oder nicht. Unten ist der Code. l=["apple",22,"orang

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

Wie überprüfe ich den SSD-Gesundheitsstatus in Windows 11? Aufgrund ihrer hohen Lese-, Schreib- und Zugriffsgeschwindigkeit ersetzen SSDs schnell Festplatten. Obwohl sie zuverlässiger sind, müssen Sie dennoch den Zustand Ihrer SSDs in Windows 11 überprüfen. Wie bedient man es? In diesem Tutorial stellt Ihnen der Herausgeber die Methode vor. Methode 1: Verwenden Sie WMIC1, verwenden Sie die Tastenkombination Win+R, geben Sie wmic ein und drücken oder klicken Sie dann auf OK. Geben Sie 2 ein. Geben Sie nun den folgenden Befehl ein oder fügen Sie ihn ein, um den SSD-Gesundheitsstatus zu überprüfen: diskdrivegetstatus Wenn Sie die Meldung „Status: OK“ erhalten, funktioniert Ihr SSD-Laufwerk normal.

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**

Wie kann man in Golang überprüfen, ob eine Zeichenfolge mit einem bestimmten Zeichen beginnt? Beim Programmieren in Golang kommt es häufig vor, dass Sie prüfen müssen, ob eine Zeichenfolge mit einem bestimmten Zeichen beginnt. Um diese Anforderung zu erfüllen, können wir die vom Strings-Paket in Golang bereitgestellten Funktionen verwenden, um dies zu erreichen. Als Nächstes stellen wir anhand spezifischer Codebeispiele ausführlich vor, wie Sie mit Golang überprüfen können, ob eine Zeichenfolge mit einem bestimmten Zeichen beginnt. In Golang können wir HasPrefix aus dem Strings-Paket verwenden
