Maison > développement back-end > C++ > Trouvez le dernier joueur capable d'inverser les caractères d'une chaîne binaire

Trouvez le dernier joueur capable d'inverser les caractères d'une chaîne binaire

王林
Libérer: 2023-09-20 08:13:17
avant
1003 Les gens l'ont consulté

Trouvez le dernier joueur capable dinverser les caractères dune chaîne binaire

Bienvenue dans notre guide complet des problèmes algorithmiques intéressants impliquant des chaînes binaires en C++. Nous allons examiner un problème dans lequel nous devons trouver le dernier joueur capable de retourner un personnage dans une chaîne binaire. Cette question est très utile pour comprendre la théorie des jeux et les opérations sur les chaînes binaires.

Énoncé du problème

Étant donné une chaîne binaire, nous avons deux joueurs qui, à tour de rôle, transforment un « 1 » en « 0 ». Le joueur qui ne peut pas effectuer le flip perd la partie. La tâche est de savoir si le joueur 1 ou le joueur 2 peut retourner un personnage en dernier.

Méthode

Nous allons parcourir la chaîne binaire, en comptant le nombre de "1". Si le nombre de « 1 » est un nombre pair, le joueur 2 sera la dernière personne à retourner un « 1 » puisque le joueur 1 commence toujours la partie. Si le nombre de « 1 » est un nombre impair, le joueur 1 sera la dernière personne à retourner un « 1 ».

Implémentation C++

Exemple

C'est la solution C++ au problème−

#include<bits/stdc++.h>
using namespace std;

string lastPlayer(string s) {
   int count = 0;
   for (char c : s) {
      if (c == '1')
         count++;
   }
   return (count % 2 == 0) ? "Player 2" : "Player 1";
}

int main() {
   string s="1101";
   
   cout << "The last player to be able to flip a character is: " << lastPlayer(s) << endl;
   return 0;
}
Copier après la connexion

Sortie

The last player to be able to flip a character is: Player 1
Copier après la connexion

Ce programme prend en entrée une chaîne binaire et affiche le dernier joueur capable de retourner le personnage.

Exemple de cas de test

Prenons un exemple pour clarifier ce problème et sa solution -

Supposons que la chaîne binaire soit "1101".

  • Nous comptons d'abord le nombre de « 1 » dans la chaîne binaire.

  • Le nombre de « 1 » dans « 1101 » est 3, ce qui est un nombre impair.

  • Le décompte étant impair, le joueur 1 sera le dernier à retourner le « 1 ».

  • Le résultat sera donc "Le dernier joueur capable d'inverser les rôles était : Joueur 1".

Conclusion

Dans ce guide C++, nous avons appris à déterminer le dernier joueur capable de retourner un caractère dans une chaîne binaire. Cette question est une exploration intéressante de la théorie des jeux et de la manipulation des chaînes binaires.

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!

Étiquettes associées:
source:tutorialspoint.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal