


Le nombre de sous-chaînes de longueur K contenant exactement X voyelles
Dans ce problème, nous devons trouver le nombre total de sous-chaînes de longueur K qui contiennent exactement K voyelles. Nous verrons deux manières différentes de résoudre le problème. Nous pouvons utiliser une méthode simple pour vérifier le nombre de voyelles dans chaque sous-chaîne de longueur K. De plus, nous pouvons utiliser une approche de fenêtre glissante pour résoudre ce problème.
Énoncé du problème - On nous donne une chaîne str de longueur N, contenant des caractères alphabétiques minuscules et majuscules. Nous devons compter le nombre total de sous-chaînes de longueur K qui contiennent exactement X voyelles.
Exemple
Entrée– str = "TutorialsPoint", K = 3, X = 2
Sortie– 6
Explication– Les sous-chaînes de longueur 3 contenant exactement 2 voyelles sont : 'uto', 'ori', 'ria', 'ial', 'Poi' et 'oin'. p>
Entrée– str = 'aeiou', K = 2, X = 2
Sortie– 4
Explication- Les sous-chaînes de longueur 2 et contenant exactement 2 voyelles sont : 'ae', 'ei', 'io' et 'ou'.
Entrée– str = 'fghjsdfdffg', K = 5, X = 1
Sortie– 0
Explication- La chaîne str ne contient aucune voyelle, nous ne trouvons donc aucune sous-chaîne contenant 1 voyelle.
Méthode 1
Dans cette méthode, nous trouverons chaque sous-chaîne de longueur K de str. Après cela, nous compterons le nombre total de voyelles dans une sous-chaîne spécifique et si nous constatons qu'elles sont égales à X, nous pouvons augmenter le nombre de 1.
Algorithme
Dans la fonction cntSubStr(), initialisez la variable "cnt" à zéro pour stocker le nombre total de sous-chaînes.
Utilisez une boucle pour parcourir du 0ème index aux indices len - K, où "len" est la longueur de la chaîne.
Dans la boucle, utilisez la méthode substr() pour obtenir la sous-chaîne de longueur K à partir du i-ième index.
Exécutez la fonction countVowel() pour compter le nombre total de voyelles dans la sous-chaîne.
Dans la fonction countVowel(), initialisez la variable "voyelles" à zéro pour stocker le nombre total de voyelles.
Parcourez la sous-chaîne, le caractère actuel est une voyelle et ajoutez 1 à la valeur de « voyelles ».
Retour à "voyelle".
Dans la fonction cntSubStr(), si le nombre total de voyelles dans la sous-chaîne est égal à X, augmentez la valeur de "cnt" de 1.
Renvoyer la valeur de "cnt".
Exemple
#include <bits/stdc++.h> using namespace std; // function to count the total number of vowels in a string int cntVowels(string alpha) { int vows = 0; for (int i = 0; i < alpha.length(); i++) { if (alpha[i] == 'a' || alpha[i] == 'e' || alpha[i] == 'i' || alpha[i] == 'o' || alpha[i] == 'u' || alpha[i] == 'A' || alpha[i] == 'E' || alpha[i] == 'I' || alpha[i] == 'O' || alpha[i] == 'U') vows++; } return vows; } int cntSubstr(string str, int K, int X) { int cnt = 0; // traverse the string and check for the total number of vowels in each substring of length K for (int i = 0; i <= str.length() - K; i++) { // get the substring of length K starting from index i string sub = str.substr(i, K); // check if the total number of vowels in the substring is equal to X, then increment cnt if (cntVowels(sub) == X) cnt++; } return cnt; } // Driver code int main(void) { string str = "TutorialsPoint"; int K = 3, X = 2; cout << "The total number of substrings of length " << K << " containing " << X << " vowels is " << cntSubstr(str, K, X); return 0; }
Sortie
The total number of substrings of length 3 containing 2 vowels is 6
Complexité temporelle– O(N*K), lorsque nous parcourons str, parcourons les sous-chaînes dans la fonction countVowel().
Complexité spatiale – O(K) puisque nous stockons les sous-chaînes
Méthode 2
Nous utiliserons la technique de la fenêtre coulissante pour résoudre les problèmes de cette approche. Nous supprimerons le premier caractère de la sous-chaîne et ajouterons 1 caractère à la fin. De plus, nous garderons une trace du nombre de voyelles dans la sous-chaîne actuelle, et s'il est égal à X, nous pouvons incrémenter le nombre de 1.
Algorithme
Définissez la fonction isVowel() pour renvoyer une valeur booléenne selon qu'un caractère spécifique est une voyelle.
Dans la fonction cntSubStr(), définissez "total_vow" et initialisez-le à zéro pour stocker le total des voyelles dans la fenêtre actuelle.
À partir du 0ème index, trouvez le nombre total de voyelles dans la sous-chaîne de longueur K, représentant la première fenêtre.
Initialisez la variable "cnt" à 1 ou 0 selon que la valeur de "vow" est égale à X.
Commencez à parcourir la chaîne de la position 1 à l'indice len – K.
Si le caractère (i-1) est une voyelle, décrémentez la valeur de "total_vow" de 1.
Si le caractère au (i - 1 + K)ème index est une voyelle, augmentez la valeur de "total_vow" de 1.
Si "total_vow" est égal à X, augmentez "cnt" de 1.
Renvoyer la valeur de "cnt".
Exemple
#include <bits/stdc++.h> using namespace std; bool isVowel(char ch) { // convert character to lowercase ch = tolower(ch); return (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u'); } int cntSubstr(string str, int K, int X) { // To store total vowels int total_vow = 0; // Count the number of vowels in the first window for (int p = 0; p < K; p++) if (isVowel(str[p])) total_vow++; // to store the total number of substrings of length K containing X vowels int cnt = 0; // If the first window contains exactly X vowels, initialize cnt as 1 cnt = total_vow == X ? 1 : 0; // traverse the string for (int i = 1; i <= str.length() - K; i++) { // exclude the (i - 1)th character from the window and update the total_vow total_vow = isVowel(str[i - 1]) ? total_vow - 1 : total_vow; // Add [i-1+K]th character to the current window and update total_vow total_vow = isVowel(str[i - 1 + K]) ? total_vow + 1 : total_vow; // If the current window contains exactly X vowels, increment cnt if (total_vow == X) cnt++; } return cnt; } int main(void) { string str = "TutorialsPoint"; int K = 3, X = 2; cout << "The total number of substrings of length " << K << " containing " << X << " vowels is " << cntSubstr(str, K, X); return 0; }
Sortie
The total number of substrings of length 3 containing 2 vowels is 6
Complexité temporelle - O(N) puisque nous parcourons la chaîne.
Complexité spatiale - O(1) puisque nous n'utilisons aucun espace supplémentaire.
Nous avons optimisé la deuxième méthode et réduit la complexité temporelle du code. De plus, nous optimisons également la complexité spatiale de la deuxième méthode. Ici, nous trouvons le nombre total de sous-chaînes de longueur K qui contiennent exactement X voyelles, mais le programmeur pourrait essayer de trouver le nombre total de sous-chaînes de n'importe quelle longueur contenant exactement K voyelles.
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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Sujets chauds





Dans cet article, nous verrons comment modifier une chaîne donnée en C++ en réorganisant les voyelles par ordre alphabétique à leurs indices respectifs. Nous expliquerons également les méthodes utilisées pour résoudre ce problème et fournirons des exemples avec des cas de test. Énoncé du problème Étant donné une chaîne, réorganisez les voyelles à leurs indices respectifs par ordre alphabétique. Les consonnes de la chaîne doivent conserver leur ordre d'origine. Par exemple, étant donné la chaîne « tutorialspoint », le résultat devrait être « tatiriolspount ». Méthode Ce problème peut être résolu à l'aide d'un algorithme simple. Nous pouvons d’abord créer une chaîne distincte contenant toutes les voyelles de la chaîne donnée dans leur ordre respectif. Nous pouvons ensuite trier cette chaîne par ordre alphabétique. enfin,

Il n'y a pas de limite fixe à la longueur d'un tableau en PHP, elle peut être ajustée dynamiquement en fonction de la taille de la mémoire du système. En PHP, un tableau est une structure de données très flexible qui peut stocker n'importe quel nombre d'éléments, et chaque élément peut être une valeur de n'importe quel type, ou même un autre tableau. La limite de longueur des tableaux PHP dépend principalement de la taille de la mémoire du système et de la limite de mémoire de la configuration PHP. De manière générale, si la mémoire du système est suffisamment grande et que la limite de mémoire de PHP est suffisamment élevée, la longueur du tableau peut être très grande. Cependant, si votre système manque de mémoire ou

Y a-t-il une limite à la longueur du tableau PHP ? Besoin d'exemples de code spécifiques En PHP, la longueur du tableau n'est pas soumise à une limite fixe et la taille du tableau peut être ajustée dynamiquement en fonction de la limite réelle de la mémoire système. Les tableaux en PHP sont des tableaux dynamiques, ils peuvent donc s'agrandir ou se réduire dynamiquement selon les besoins. En PHP, un tableau est une structure de données mappée ordonnée, et les éléments du tableau sont accessibles à l'aide d'indices de tableau ou de valeurs de clés de tableau associatives. Examinons un exemple de code spécifique pour démontrer si la longueur du tableau PHP est limitée. Tout d'abord, nous pouvons passer le code suivant

Le but de cet article est d'implémenter un programme qui maximise la somme des longueurs d'une paire de chaînes n'ayant aucun caractère commun dans un tableau donné. Par définition, une chaîne est une collection de caractères. Énoncé du problème Implémentez un programme pour maximiser la somme des longueurs d'une paire de chaînes qui n'ont pas de caractères communs dans un tableau donné. Exemple 1Considérons le tableau d'entrée : a[]=["efgh","hat","fto","car","wxyz","fan"]Sortie obtenue :8 Description Il n'y a aucun caractère commun dans les chaînes "abcd" et "wxyz ". En conséquence, la longueur combinée des deux chaînes est de 4+4, ce qui est égal à 8, ce qui est la longueur la plus longue parmi toutes les paires possibles. Exemple 2Letu

Le rôle et la signification de la fonction len sont interprétés sous différents angles. La fonction len est l'une des fonctions couramment utilisées dans le langage de programmation Python. Il est principalement utilisé pour renvoyer la longueur ou le nombre d'éléments d'un objet conteneur (tel qu'une chaîne, une liste, un tuple, etc.). Cette fonction simple joue un rôle très important lors de l’écriture de programmes, et sa fonction et sa signification peuvent être interprétées sous de nombreux angles. Cet article expliquera la fonction len du point de vue des performances, de la lisibilité et du type de conteneur, et fournira des exemples de code spécifiques. 1. Perspective de performance Lors du traitement de données à grande échelle, les performances du programme

En Golang, valider la longueur du texte saisi est un besoin courant. Grâce à la validation, nous pouvons garantir que le texte saisi répond à des exigences spécifiques et correspond à la longueur attendue. Dans cet article, nous explorerons comment vérifier la longueur du texte saisi à l'aide de Golang. Tout d’abord, nous devons comprendre les fonctions de chaîne couramment utilisées dans Golang. Parmi elles, la fonction len() est utilisée pour calculer la longueur de la chaîne. Par exemple, le code suivant calcule la longueur de la chaîne « helloworld » : str:=

Dans ce problème, nous devons trouver le nombre total de sous-chaînes de longueur K qui contiennent exactement K voyelles. Nous verrons deux manières différentes de résoudre le problème. Nous pouvons utiliser une méthode simple pour vérifier le nombre de voyelles dans chaque sous-chaîne de longueur K. De plus, nous pouvons utiliser une approche de fenêtre glissante pour résoudre ce problème. Énoncé du problème - On nous donne une chaîne str de longueur N, contenant des caractères alphabétiques minuscules et majuscules. Nous devons compter le nombre total de sous-chaînes de longueur K qui contiennent exactement X voyelles. Exemple d'entrée – str="TutorialsPoint",K=3,X=2 Sortie –6 Explication – Une sous-chaîne de longueur 3 et contenant exactement 2 voyelles est : 'uto', 'ori', 'ri

L'hypoténuse est le côté le plus long d'un triangle rectangle opposé à l'angle droit. La longueur de l'hypoténuse peut être déterminée à l'aide du théorème de Pythagore. Selon le théorème de Pythagore, la somme des carrés des longueurs de deux côtés est égale au carré de la longueur du troisième côté, c'est-à-dire a2+b2=c2 où a, b et c représentent les trois côtés de un triangle rectangle. Donc, Hypotenuse=Math.sqrt(Math.pow(base,2)+Math.pow(height,2)) Dans cet article, nous verrons comment trouver la longueur de l'hypoténuse à l'aide du langage de programmation Java. Laissez-moi vous montrer quelques exemples. La traduction chinoise de l'instance-1 est : Exemple-1 Supposons que la longueur et la hauteur de la base soient respectivement 3 et 4. Ensuite, en utilisant la formule du théorème de Pythagore, Longueur
