Table des matières
Méthode 1
Algorithme
Exemple
Sortie
Maison développement back-end C++ Rendre les chaînes binaires égales en remplaçant à plusieurs reprises le deuxième bit

Rendre les chaînes binaires égales en remplaçant à plusieurs reprises le deuxième bit

Sep 17, 2023 pm 07:41 PM
替换 répéter chaîne binaire

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";
Copier après la connexion

Sortie

Yes
Copier après la connexion
Copier après la connexion

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";
Copier après la connexion

Sortie

Yes
Copier après la connexion
Copier après la connexion

Explication - Les chaînes données sont déjà les mêmes.

Entrez

bin1 = "101101"; bin2 = "1110";
Copier après la connexion

Sortie

No
Copier après la connexion

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.";
    }
}
Copier après la connexion

Sortie

YES, It is possible to convert bin1 to bin2.
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Utilisez la fonction StringBuilder.replace() de Java pour remplacer une plage de caractères spécifiée Utilisez la fonction StringBuilder.replace() de Java pour remplacer une plage de caractères spécifiée Jul 24, 2023 pm 06:12 PM

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

Comment résoudre le problème de la boucle infinie d'ouverture de pages Web dans le navigateur Edge Comment résoudre le problème de la boucle infinie d'ouverture de pages Web dans le navigateur Edge Dec 25, 2023 pm 01:19 PM

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.

Maîtrisez les touches de raccourci de remplacement de PyCharm en 5 minutes et augmentez facilement votre vitesse de programmation ! Maîtrisez les touches de raccourci de remplacement de PyCharm en 5 minutes et augmentez facilement votre vitesse de programmation ! Feb 22, 2024 am 10:57 AM

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.

Remplacer le nom de classe d'un élément à l'aide de jQuery Remplacer le nom de classe d'un élément à l'aide de jQuery Feb 24, 2024 pm 11:03 PM

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.

Guide du débutant PyCharm : analyse complète des fonctions de remplacement Guide du débutant PyCharm : analyse complète des fonctions de remplacement Feb 25, 2024 am 11:15 AM

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 remplace les touches de raccourci pour rendre la programmation plus pratique ! PyCharm remplace les touches de raccourci pour rendre la programmation plus pratique ! Feb 21, 2024 pm 12:03 PM

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

Comment utiliser la fonction REPLACE pour remplacer une partie spécifiée d'une chaîne dans MySQL Comment utiliser la fonction REPLACE pour remplacer une partie spécifiée d'une chaîne dans MySQL Jul 25, 2023 pm 01:18 PM

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).

Révéler le secret pour remplacer rapidement du code dans PyCharm Révéler le secret pour remplacer rapidement du code dans PyCharm Feb 25, 2024 pm 11:21 PM

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

See all articles