


Vérifie si une chaîne peut être divisée en trois sous-chaînes, où une sous-chaîne est une sous-chaîne des deux autres sous-chaînes
Dans ce problème, nous devons diviser la chaîne donnée afin que la troisième sous-chaîne puisse être une sous-chaîne des deux premières sous-chaînes.
Pensons à une solution. La troisième chaîne peut être une sous-chaîne des deux premières chaînes uniquement si les deux premières chaînes contiennent tous les caractères de la troisième chaîne. Nous devons donc trouver au moins un caractère dans la chaîne donnée avec une fréquence supérieure à 3, et nous pouvons prendre la troisième sous-chaîne de ce caractère unique.
Énoncé du problème - On nous donne une chaîne str contenant N caractères alphabétiques minuscules. Nous devons vérifier si nous pouvons diviser la chaîne en trois sous-chaînes a, b et c de telle sorte que la sous-chaîne c soit une sous-chaîne de a et b. Imprimez "oui" ou "non" selon que 3 sous-chaînes peuvent être trouvées.
Exemple
Input – str = "tutorialsPoint"
Output – ‘Yes’
Instructions
Ici, nous pouvons diviser la chaîne en "tu", "torialsPoin" et "t". La troisième chaîne est donc une sous-chaîne des deux premières chaînes.
Input – str = "tutorials"
Output – ‘No’
Instructions
Nous ne pouvons pas diviser la chaîne en trois sous-chaînes en fonction de la condition donnée car la fréquence d'un caractère n'est pas supérieure à 3.
Input – str = "hhhhhhhh"
Output – ‘Yes’
Instructions
Selon les conditions données, les trois sous-chaînes peuvent être « h », « h » et « hhhhhh ».
Méthode 1
Dans cette méthode, nous utiliserons un tableau pour stocker la fréquence de chaque caractère. Après cela, nous vérifierons les caractères dont la fréquence est supérieure ou égale à 3.
Algorithme
Étape 1 - Définissez le tableau "freq" d'une longueur égale à 26.
Étape 2 - Parcourez la chaîne pour compter la fréquence des caractères. Dans la boucle for, incrémentez la valeur de freq[str[i] – 'a']. Ici, str[i] – 'a' donne un index compris entre 0 et 26.
Étape 3 - Maintenant, parcourez le tableau "freq" et renvoyez vrai si la valeur d'un index du tableau est supérieure à "3".
Étape 4 - Renvoie true lorsque la boucle se termine.
Étape 5 - Imprimez "Oui" ou "Non" en fonction de la valeur de retour de la fonction isSUbStringPossible().
Exemple
#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; }
Sortie
The given string can be splited into 3 substrings such that one of them is a substring of the other two - Yes
Complexité temporelle - O(N), lorsque nous parcourons la chaîne.
Complexité spatiale - O(1) car nous utilisons des tableaux de longueur constante.
Méthode 2
Dans cette méthode, nous convertissons d'abord la chaîne en un tableau de caractères. Après cela, nous utilisons la méthode count() pour compter la fréquence de caractères spécifiques dans le tableau.
Algorithme
Étape 1 - Créez un tableau de taille "len + 1", où "len" est la longueur de la chaîne.
Étape 2 - Copiez la chaîne dans un tableau de caractères à l'aide de la méthode strcpy().
Étape 3 - Utilisez une boucle for pour un total de 26 itérations.
Étape 4 - Dans la boucle for, utilisez la méthode count() pour compter le nombre d'occurrences d'un caractère spécifique.
La méthode Étape 5 - Renvoie true si la méthode count() renvoie supérieur ou égal à 3.
Étape 6 - Renvoie false lorsque la boucle se termine.
count() prend une référence à la position de départ comme premier argument, une référence à la position de fin comme deuxième argument et un caractère comme troisième argument.
Ici, nous devons passer la valeur ASCII du caractère comme paramètre et nous utilisons I + 'a' pour obtenir la valeur.
Exemple
#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; }
Sortie
The given string can be splited into 3 substrings such that one of them is a substring of the other two - Yes
Complexité temporelle - O(N) car la méthode count() parcourt le tableau de caractères pour compter le nombre de caractères. De plus, la méthode strcpy() prend un temps O(N).
Complexité spatiale - O(N) car nous stockons la chaîne dans un tableau de caractères.
Conclusion
Nous avons appris deux façons de diviser une chaîne en trois sous-chaînes afin qu'une sous-chaîne puisse être la sous-chaîne de deux autres sous-chaînes. Le code de la deuxième méthode est plus lisible et convivial pour les débutants, mais il est plus coûteux en temps et en espace.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le programme en cours d'exécution est appelé un processus. Un processus peut être une application exécutée sur le système d'exploitation actuel ou une application liée au système d'exploitation. Si une application est liée au système d'exploitation, elle crée d'abord un processus pour s'exécuter. D'autres applications s'appuient sur les services du système d'exploitation pour leur exécution. La plupart des applications sont des services du système d'exploitation et des applications d'arrière-plan qui gèrent le système d'exploitation, les logiciels et le matériel. En python, nous avons différentes méthodes pour vérifier si l'application est ouverte ou non. Apprenons-les en détail un par un. Utilisation de la fonction psutil.process_iter() psutil est un module en Python qui fournit aux utilisateurs une interface pour récupérer des informations sur les processus en cours d'exécution et l'utilisation du système.
![La vérification orthographique ne fonctionne pas dans Teams [Corrigé]](https://img.php.cn/upload/article/000/887/227/170968741326618.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Nous avons commencé à remarquer que parfois la vérification orthographique cesse de fonctionner pour Teams. La vérification orthographique est un outil essentiel pour une communication efficace, et toute attaque contre celui-ci peut perturber considérablement le flux de travail. Dans cet article, nous explorerons les raisons courantes pour lesquelles la vérification orthographique peut ne pas fonctionner comme prévu et comment la restaurer à son état précédent. Ainsi, si la vérification orthographique ne fonctionne pas dans Teams, suivez les solutions mentionnées dans cet article. Pourquoi la vérification orthographique de Microsoft ne fonctionne-t-elle pas ? Il peut y avoir plusieurs raisons pour lesquelles la vérification orthographique de Microsoft ne fonctionne pas correctement. Ces raisons incluent des paramètres de langue incompatibles, une fonction de vérification orthographique désactivée, une installation MSTeam ou MSOffice endommagée, etc. En outre, MSTeams et MSOF obsolètes

Un objet itérable est un objet dont tous les éléments peuvent être itérés à l'aide d'une boucle ou d'une fonction itérable. Les listes, chaînes, dictionnaires, tuples, etc. sont tous appelés objets itérables. En langage Python, il existe différentes manières de vérifier si un objet est itérable. Jetons un coup d'œil un par un. Utilisation des boucles En Python, nous avons deux techniques de bouclage, l'une utilise la boucle "for" et l'autre utilise la boucle "while". En utilisant l'une ou l'autre de ces deux boucles, nous pouvons vérifier si un objet donné est itérable. Exemple Dans cet exemple, nous allons essayer d'itérer un objet en utilisant la boucle "for" et vérifier s'il est itéré ou non. Ci-dessous le code. l=["pomme",22,"orange

Comment utiliser la fonction LOCATE dans MySQL pour trouver la position d'une sous-chaîne dans une chaîne. Dans MySQL, de nombreuses fonctions peuvent être utilisées pour traiter des chaînes. Parmi elles, la fonction LOCATE est une fonction très utile qui peut être utilisée pour trouver la position d'une sous-chaîne dans une chaîne. La syntaxe de la fonction LOCATE est la suivante : LOCATE(substring,string,[position]) où substring est la sous-chaîne à trouver et string est la sous-chaîne à trouver.

Étant donné deux chaînes str_1 et str_2. Le but est de compter le nombre d'occurrences de la sous-chaîne str2 dans la chaîne str1 en utilisant une procédure récursive. Une fonction récursive est une fonction qui s'appelle dans sa définition. Si str1 est "Je sais que vous savez que je sais" et str2 est "savoir", le nombre d'occurrences est de -3 Comprenons à travers des exemples. Par exemple, entrez str1="TPisTPareTPamTP", str2="TP" ; sortie Countofoccurrencesofasubstringrecursi.

Comment vérifier l’état de santé du SSD sous Windows 11 ? Pour leurs vitesses de lecture, d'écriture et d'accès rapides, les SSD remplacent rapidement les disques durs, mais même s'ils sont plus fiables, vous devez toujours vérifier la santé de vos SSD sous Windows 11. Comment le faire fonctionner ? Dans ce tutoriel, l'éditeur partagera avec vous la méthode. Méthode 1 : utilisez WMIC1, utilisez la combinaison de touches Win+R, tapez wmic, puis appuyez ou cliquez sur OK. Entrez 2. Maintenant, tapez ou collez la commande suivante pour vérifier l'état de santé du SSD : diskdrivegetstatus Si vous recevez le message « Statut : OK », votre disque SSD fonctionne normalement.

Cette fonction est similaire à la fonction strtok(). La seule différence clé est _r, qui est appelée fonction réentrante. Les fonctions réentrantes sont des fonctions qui peuvent être interrompues lors de l'exécution. Ce type de fonction peut être utilisé pour reprendre l'exécution. Par conséquent, les fonctions réentrantes sont thread-safe, ce qui signifie qu’elles peuvent être interrompues en toute sécurité par les threads sans causer de dommages. La fonction strtok_r() a un paramètre supplémentaire appelé contexte. De cette façon, la fonction peut être restaurée au bon endroit. La syntaxe de la fonction strtok_r() est la suivante : #include<string.h>char*strtok_r(char*string,constchar*limiter,char**

Comment vérifier si une chaîne commence par un caractère spécifique en Golang ? Lors de la programmation en Golang, vous rencontrez souvent des situations où vous devez vérifier si une chaîne commence par un caractère spécifique. Pour répondre à cette exigence, nous pouvons utiliser les fonctions fournies par le package strings dans Golang pour y parvenir. Ensuite, nous présenterons en détail comment utiliser Golang pour vérifier si une chaîne commence par un caractère spécifique, avec des exemples de code spécifiques. En Golang, nous pouvons utiliser HasPrefix du package strings
