Rumah > pembangunan bahagian belakang > C++ > Cari pemain terakhir yang boleh menyelak aksara dalam rentetan binari

Cari pemain terakhir yang boleh menyelak aksara dalam rentetan binari

王林
Lepaskan: 2023-09-20 08:13:17
ke hadapan
997 orang telah melayarinya

Cari pemain terakhir yang boleh menyelak aksara dalam rentetan binari

Selamat datang ke panduan komprehensif kami untuk masalah algoritma menarik yang melibatkan rentetan binari dalam C++. Kita akan melihat masalah di mana kita perlu mencari pemain terakhir yang dapat membalikkan watak dalam rentetan binari. Soalan ini sangat berguna untuk memahami teori permainan dan operasi rentetan binari.

Pernyataan Masalah

Memandangkan rentetan binari, kami mempunyai dua pemain secara bergilir-gilir menukar '1' menjadi '0'. Pemain yang tidak dapat melakukan flip kalah dalam permainan. Tugasnya adalah untuk mengetahui sama ada pemain 1 atau pemain 2 boleh membalikkan watak terakhir.

Kaedah

Kami akan mengulangi rentetan binari, mengira bilangan "1". Jika nombor "1" ialah nombor genap, pemain 2 akan menjadi orang terakhir yang menyelak "1" kerana pemain 1 sentiasa memulakan permainan. Jika nombor "1" ialah nombor ganjil, pemain 1 akan menjadi orang terakhir yang menyelak "1".

Pelaksanaan C++

Contoh

Ini adalah penyelesaian C++ untuk masalah−

#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;
}
Salin selepas log masuk

Output

The last player to be able to flip a character is: Player 1
Salin selepas log masuk

Program ini mengambil sebagai input rentetan binari dan mengeluarkan pemain terakhir yang boleh membalikkan watak.

Contoh kes ujian

Mari kita pertimbangkan contoh untuk menjelaskan masalah ini dan penyelesaiannya -

Katakan rentetan binari ialah "1101".

  • Kami mula-mula mengira bilangan '1' dalam rentetan binari.

  • Nombor "1" dalam "1101" ialah 3, iaitu nombor ganjil.

  • Memandangkan kiraan adalah ganjil, Pemain 1 akan menjadi orang terakhir yang menyelak '1'.

  • Jadi outputnya ialah "Pemain terakhir yang dapat menukar peranan ialah: Pemain 1".

Kesimpulan

Dalam panduan C++ ini, kami belajar cara menentukan pemain terakhir yang boleh menyelak watak dalam rentetan binari. Soalan ini adalah penerokaan yang menarik tentang teori permainan dan manipulasi rentetan binari.

Atas ialah kandungan terperinci Cari pemain terakhir yang boleh menyelak aksara dalam rentetan binari. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan