Cari pemain terakhir untuk mengalih keluar sebarang aksara dari permulaan rentetan binari

王林
Lepaskan: 2023-08-27 21:17:06
ke hadapan
541 orang telah melayarinya

Cari pemain terakhir untuk mengalih keluar sebarang aksara dari permulaan rentetan binari

Apabila berurusan dengan rentetan binari dalam C++, anda selalunya perlu mengenal pasti corak atau pemain tertentu yang melakukan operasi tertentu. Tugas biasa ialah mencari pemain terakhir untuk mengalih keluar sebarang aksara dari permulaan rentetan binari. Dalam artikel ini, kami membincangkan algoritma untuk menyelesaikan masalah ini dan menyediakan pelaksanaan contoh C++.

Pernyataan Masalah

Memandangkan rentetan binari s dan dua pemain A dan B, pemain bergilir-gilir mengalih keluar sebarang aksara pada permulaan rentetan. Pemain yang mengeluarkan watak terakhir menang. Jika kedua-dua pemain bermain yang terbaik, ia ditentukan pemain mana yang akan memenangi permainan.

Algoritma

Untuk menyelesaikan masalah ini, kita boleh menggunakan pemerhatian yang mudah. Pemain yang memulakan permainan dengan nombor ganjil 1 akan sentiasa menang, dan pemain yang memulakan permainan dengan nombor genap 1 akan sentiasa kalah.

Kita boleh mengira bilangan 1 dalam rentetan binari s dan menentukan pemain yang memulakan permainan. Jika nombor 1 ialah nombor ganjil, pemain A memulakan permainan dan menang. Jika nombor 1 genap, pemain B memulakan permainan dan kalah.

Contoh

Ini adalah pelaksanaan algoritma dalam C++ -

#include <iostream>
#include <string>

using namespace std;

string findLastPlayer(string s) {
   int countOnes = 0;
   for (int i = 0; i < s.length(); i++) {
      if (s[i] == '1') {
         countOnes++;
      }
   }
   if (countOnes % 2 == 1) {
      return "Player A";
   } else {
      return "Player B";
   }
}

int main() {
   string s = "1101001";
   string lastPlayer = findLastPlayer(s);
   cout << "The last player to remove a character is " << lastPlayer << "." << endl;
   return 0;
}
Salin selepas log masuk

Output

The last player to remove a character is Player B.
Salin selepas log masuk

Dalam pelaksanaan ini, kami menggunakan gelung untuk mengira bilangan 1 dalam rentetan binari s. Kami memulakan pengiraan pembilang kepada 0 dan menambahnya untuk setiap aksara bersamaan dengan "1". Kami kemudian menyemak sama ada countOnes ganjil atau genap dan mengembalikan nama pemain yang menang.

Kes Ujian

Mari uji fungsi ini dengan contoh. Katakan kita mempunyai rentetan binari berikut -

string s = "101010";
Salin selepas log masuk

Kita boleh memanggil fungsi findLastPlayer() menggunakan s sebagai parameter:

string lastPlayer = findLastPlayer(s);
Salin selepas log masuk

Fungsi ini akan mengembalikan "Pemain B" kerana nombor 1 dalam rentetan s ialah nombor genap dan Pemain B memulakan permainan dan akan kalah. Jika kita mempunyai nombor ganjil 1 dalam rentetan binari, fungsi itu akan mengembalikan "Pemain A" kerana Pemain A akan memulakan permainan dan menang.

Kesimpulan

Ringkasnya, kami mencadangkan algoritma untuk menyelesaikan masalah mencari pemain yang terakhir memadam sebarang aksara dari permulaan rentetan binari dalam C++. Dengan mengira bilangan 1 dalam rentetan, kita boleh menentukan pemain mana yang memulakan permainan dan siapa yang akan menang. Kami juga menyediakan contoh pelaksanaan algoritma C++ bersama kes ujian untuk menunjukkan penggunaannya. Dengan mengikuti langkah-langkah yang digariskan dalam artikel ini, anda kini boleh menentukan pemain terakhir untuk mengalih keluar aksara daripada rentetan binari dalam program C++ anda.

Atas ialah kandungan terperinci Cari pemain terakhir untuk mengalih keluar sebarang aksara dari permulaan rentetan binari. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!