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

王林
王林avant
2023-09-20 08:13:17992parcourir

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;
}

Sortie

The last player to be able to flip a character is: Player 1

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer