


Rendre les chaînes binaires égales en remplaçant à plusieurs reprises le deuxième bit
Dans ce problème, nous devons convertir la chaîne bin1 en chaîne bin2 en remplaçant le deuxième caractère de la chaîne bin1 par la valeur minimale ou maximale parmi les premier et deuxième caractères, et supprimer le premier caractère.
Puisque nous devons supprimer le premier caractère, nous devons nous assurer que les derniers caractères len2 − 1 des deux chaînes sont identiques. De plus, nous devons nous assurer que nous pouvons obtenir le premier caractère de la deuxième chaîne en effectuant l'opération donnée sur le caractère de départ de la chaîne bin1.
Énoncé du problème - Nous recevons des chaînes binaires bin1 et bin2 de longueur len1 et len2 respectivement. Nous devons vérifier si nous pouvons convertir la chaîne bin1 en chaîne bin2 en procédant comme suit.
Mettez à jour le deuxième caractère de la chaîne bin1 en utilisant la valeur minimale ou maximale des premier et deuxième caractères de la chaîne bin1.
Supprimez le premier caractère de la chaîne bin1 et la taille de la chaîne sera réduite de 1 à chaque fois.
Exemple
Entrez
bin1 = "0101011"; bin2 = "011";
Sortie
Yes
Instructions- Nous pouvons faire ce qui suit pour convertir la chaîne bin1 en chaîne bin2.
Nous pouvons remplacer le deuxième caractère par min(0,1) et supprimer le premier caractère. La chaîne devient donc 001011.
Nous effectuons à nouveau la même opération et la chaîne devient 01011.
Dans les prochaines opérations, la chaîne devient respectivement 0011 et 011.
Entrez
bin1 = "1110"; bin2 = "1110";
Sortie
Yes
Explication - Les chaînes données sont déjà les mêmes.
Entrez
bin1 = "101101"; bin2 = "1110";
Sortie
No
Explication - Nous ne pouvons pas convertir la chaîne bin1 en chaîne bin2 en effectuant l'opération donnée.
Méthode 1
Si la longueur de la chaîne bin1 est plus petite, nous ne pouvons pas la convertir en chaîne bin2.
Dans les autres cas, les derniers caractères len2 − 1 de la chaîne bin1 restent inchangés car nous n'effectuons aucune opération dessus. Par conséquent, les derniers caractères len2 − 1 des deux chaînes doivent être identiques.
De plus, si le premier caractère de la chaîne bin2 est « 0 », nous devrions min() le caractère de départ de la chaîne bin1, et elle doit contenir au moins un « 0 ».
Si le premier caractère de la chaîne bin2 est « 1 », nous devons effectuer l'opération max() sur le caractère de départ de la chaîne bin2, et elle doit contenir au moins un « 1 ».
Algorithme
Étape 1 - Si la longueur de bin1 est inférieure à la longueur de la chaîne bin2, retournez false.
Étape 2 - Parcourez la chaîne bin2 en commençant par la deuxième position.
Étape 3 - Si bin2[p] n'est pas égal à bin1[p + len1 - len2], renvoyez false car les derniers caractères len2 -1 ne sont pas les mêmes.
Étape 4 - Parcourez les premiers caractères len1 - len2 + 1 et vérifiez s'il contient des caractères bin2[0]. Si oui, retournez vrai.
Étape 5 - Renvoie false à la fin de la fonction.
Exemple
#include <bits/stdc++.h> using namespace std; bool convertAtoB(string bin1, string bin2) { int len1 = bin1.size(), len2 = bin2.size(); // When length 1 is less than length 2 if (len1 < len2) { return false; } // Check whether substring bin1[p + len1 - len2]... bin1[len1] and bin2[1]... bin2[len2] for (int p = 1; p < len2; p++) { if (bin1[p + len1 - len2] != bin2[p]) { return false; } } // Check whether substring bin1[0... len1 - len2 - 1] contains bin2[0] for (int p = 0; p < len1 - len2 + 1; p++) { if (bin1[p] == bin2[0]) { return true; } } return false; } int main() { string bin1 = "0101011"; string bin2 = "011"; bool res = convertAtoB(bin1, bin2); if (res == true) { cout << "YES, It is possible to convert bin1 to bin2."; } else { cout << "NO, It is not possible to convert bin1 to bin2."; } }
Sortie
YES, It is possible to convert bin1 to bin2.
Complexité temporelle - O(N) pour faire correspondre les caractères de chaîne.
Complexité spatiale - O(1) puisque nous n'utilisons aucun espace dynamique.
Nous avons appris à convertir la première chaîne binaire en deuxième chaîne binaire en suivant les opérations données. Un programmeur peut essayer de vérifier si une chaîne peut être convertie en une autre en remplaçant le dernier caractère par la valeur minimale ou maximale des caractères de dernière et de dernière seconde et en supprimant le dernier caractère.
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)

Sujets chauds

Utilisez la fonction StringBuilder.replace() de Java pour remplacer une plage de caractères spécifiée. En Java, la classe StringBuilder fournit la méthode replace(), qui peut être utilisée pour remplacer une plage de caractères spécifiée dans une chaîne. La syntaxe de cette méthode est la suivante : publicStringBuilderreplace(intstart,intend,Stringstr) La méthode ci-dessus est utilisée pour remplacer l'étoile d'index de

De nombreux amis qui utilisent le navigateur Edge sur Win10 ont rencontré le problème de l'ouverture répétée des pages Web, ce qui est un casse-tête. Alors, comment le résoudre ? Jetons un coup d'œil aux solutions détaillées ci-dessous. Que faire si le navigateur Edge continue d'ouvrir des pages Web à plusieurs reprises : 1. Accédez au navigateur Edge et cliquez sur les trois points dans le coin supérieur droit. 2. Cliquez sur "Paramètres" dans la barre des tâches. 3. Recherchez « Méthode d'ouverture Microsoft Edge ». 4. Cliquez sur le menu déroulant et sélectionnez « Page de démarrage ». 5. Redémarrez le navigateur une fois terminé pour résoudre le problème.

PyCharm est un environnement de développement intégré Python couramment utilisé avec des fonctions riches et des touches de raccourci qui peuvent aider les développeurs à améliorer l'efficacité de la programmation. Dans le processus de programmation quotidien, la maîtrise des compétences de remplacement des touches de raccourci de PyCharm peut aider les développeurs à accomplir leurs tâches plus rapidement. Cet article vous présentera quelques touches de raccourci de remplacement couramment utilisées dans PyCharm pour vous aider à améliorer facilement votre vitesse de programmation. 1.Remplacement Ctrl+R Dans PyCharm, vous pouvez utiliser la touche de raccourci Ctrl+R pour effectuer des opérations de remplacement.

jQuery est une bibliothèque JavaScript classique largement utilisée dans le développement Web. Elle simplifie les opérations telles que la gestion des événements, la manipulation des éléments DOM et l'exécution d'animations sur les pages Web. Lorsque vous utilisez jQuery, vous rencontrez souvent des situations dans lesquelles vous devez remplacer le nom de classe d'un élément. Cet article présentera quelques méthodes pratiques et des exemples de code spécifiques. 1. Utilisez les méthodes RemoveClass() et AddClass(). JQuery fournit la méthode RemoveClass() pour la suppression.

PyCharm est un puissant environnement de développement intégré Python doté de fonctions et d'outils riches qui peuvent considérablement améliorer l'efficacité du développement. Parmi elles, la fonction de remplacement est l'une des fonctions fréquemment utilisées dans le processus de développement, qui peut aider les développeurs à modifier rapidement le code et à améliorer la qualité du code. Cet article présentera en détail la fonction de remplacement de PyCharm, combinée à des exemples de code spécifiques, pour aider les novices à mieux maîtriser et utiliser cette fonction. Introduction à la fonction de remplacement La fonction de remplacement de PyCharm peut aider les développeurs à remplacer rapidement le texte spécifié dans le code

PyCharm est un environnement de développement intégré populaire parmi les programmeurs. Il fournit des fonctions et des outils puissants pour rendre la programmation plus efficace et plus pratique. Dans PyCharm, un réglage et un remplacement raisonnables des touches de raccourci sont l'une des clés pour améliorer l'efficacité de la programmation. Cet article explique comment remplacer les touches de raccourci dans PyCharm pour rendre la programmation plus pratique. 1. Pourquoi devrions-nous remplacer les touches de raccourci ? Dans PyCharm, les touches de raccourci peuvent aider les programmeurs à effectuer rapidement diverses opérations et à améliorer l'efficacité de la programmation. Cependant, chacun a des habitudes différentes et certaines personnes peuvent

MySQL est un système de gestion de bases de données relationnelles couramment utilisé qui fournit une variété de fonctions pour traiter et exploiter les données. Parmi eux, la fonction REPLACE est utilisée pour remplacer la partie spécifiée de la chaîne. Dans cet article, nous présenterons comment utiliser la fonction REPLACE pour le remplacement de chaînes dans MySQL et démontrerons son utilisation à travers des exemples de code. Tout d’abord, jetons un œil à la syntaxe de la fonction REPLACE : REPLACE(str, search_str, replace_str).

PyCharm est un environnement de développement intégré Python très apprécié des développeurs. Il offre de nombreuses façons de remplacer rapidement le code, rendant le processus de développement plus efficace. Cet article révélera plusieurs méthodes couramment utilisées pour remplacer rapidement le code dans PyCharm et fournira des exemples de code spécifiques pour aider les développeurs à mieux utiliser ces fonctionnalités. 1. Utilisez la fonction de remplacement PyCharm fournit une fonction de remplacement puissante qui peut aider les développeurs à remplacer rapidement le texte dans le code. Utilisez le raccourci Ctrl+R ou faites un clic droit dans l'éditeur et sélectionnez Re
