ホームページ  >  記事  >  バックエンド開発  >  バイナリ文字列の先頭から文字を削除した最後のプレイヤーを見つけます

バイナリ文字列の先頭から文字を削除した最後のプレイヤーを見つけます

王林
王林転載
2023-08-27 21:17:06517ブラウズ

バイナリ文字列の先頭から文字を削除した最後のプレイヤーを見つけます

C でバイナリ文字列を扱う場合、多くの場合、特定のアクションを実行する特定のパターンやプレーヤーを識別する必要があります。一般的なタスクは、バイナリ文字列の先頭から文字を削除した最後のプレイヤーを見つけることです。この記事では、この問題を解決するアルゴリズムについて説明し、C による実装例を示します。

###問題文###

バイナリ文字列 s と 2 人のプレーヤー A と B が与えられた場合、プレーヤーは順番に文字列の先頭にある文字を削除します。最後のキャラクターを削除したプレイヤーが勝ちです。両方のプレーヤーが最善を尽くした場合、どちらのプレーヤーがゲームに勝つかが決まります。

###アルゴリズム###

この問題を解決するには、簡単な観察を使用できます。奇数の 1 でゲームを開始したプレーヤーが常に勝ち、偶数の 1 でゲームを開始したプレーヤーが常に負けます。

バイナリ文字列 s 内の 1 の数を数えて、どのプレイヤーがゲームを開始するかを判断できます。 1 の数が奇数の場合、プレイヤー A がゲームを開始して勝ちます。 1 の数が偶数の場合、プレーヤー B がゲームを開始し、負けます。

###例###

これは C でのアルゴリズムの実装です -

リーリー ###出力### リーリー

この実装では、ループを使用してバイナリ文字列 s 内の 1 の数を数えます。カウンタ countOnes を 0 に初期化し、「1」に等しい文字ごとにそれをインクリメントします。次に、countOnes が奇数か偶数かを確認し、勝者の名前を返します。

###テストケース###

例を使用してこの関数をテストしてみましょう。次のバイナリ文字列 -

があるとします。 リーリー

s をパラメータとして使用して findLastPlayer() 関数を呼び出すことができます:

リーリー

この関数は「プレイヤー B」を返します。これは、文字列 s 内の 1 の数が偶数であり、プレイヤー B がゲームを開始して負けることになるためです。バイナリ文字列に奇数の 1 がある場合、プレーヤー A がゲームを開始して勝つため、関数は「プレーヤー A」を返します。

###結論は###

要約すると、C でバイナリ文字列の先頭から最後に文字を削除したプレイヤーを見つける問題を解決するアルゴリズムを提案します。文字列内の 1 の数を数えることによって、どのプレイヤーがゲームを開始し、誰が勝つかを判断できます。また、アルゴリズムの C 実装例とその使用法を示すテスト ケースも提供します。この記事で説明した手順に従うことで、C プログラムのバイナリ文字列から文字を削除した最後のプレーヤーを特定できるようになります。

以上がバイナリ文字列の先頭から文字を削除した最後のプレイヤーを見つけますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。