この記事は、個々のコンポーネントから得られる累積合計を最大化する方法でバイナリ文字列を分割するという複雑なアルゴリズムの問題を解決することを目的としています。コードを実装するための包括的な構文の概要を読者に提供し、この課題を克服するための 2 つの可能な手法を提案します。さらに、上記の方法に基づいた実際の完全な実行可能コードを 2 つ示します。
###文法###ここで、バイナリ文字列を分割して合計を最大化する問題を解決するための段階的アルゴリズムについて説明します。
バイナリ文字列を左から右にトラバースします。
文字列内の各文字 -
文字が「0」の場合、それを現在の部分文字列に追加します。
文字が「1」の場合 -
現在の「currentSum」を追加して「maxSum」を更新します。
「currentSum」をゼロにリセットします。
結果として `maxSum` を返します。
方法 1
この関数内で 2 つの変数 (`maxSum` と `currentSum`) が初期化されます。前者はこれまでに到達した最大値を追跡し、後者は個々の部分文字列の合計を計算します。
範囲ベースの for ループを使用して、入力「binaryString」内の各文字「c」を反復処理します。
現在の文字「c」が「0」の場合、10 を乗算し、値「0」を加算して「currentSum」を更新します。これにより、現在の部分文字列に事実上「0」が追加されます。
現在の文字「c」が「1」の場合、現在の部分文字列が終了することを意味します。 `currentSum`を`maxSum`に追加してこれまでに到達した最大合計を更新し、`currentSum`をゼロにリセットして新しい部分文字列を開始します。
ループが完了すると、最後の部分文字列の `currentSum` を前の `maxSum` に加算することによって計算されます。 「main」関数は、ユーザーがバイナリ文字列を入力できるようにするプロンプトを提供します。
「main」関数は、ユーザーがバイナリ文字列を入力できるようにするプロンプトを提供します。
入力文字列は `maximizeSum` 関数に渡され、返された最大合計は `result` 変数に格納されます。
最後に、最大合計がユーザーに表示されます。
方法 2
イラスト
2 を乗算するのと同じです。次に、現在の文字が "0" であるため、`currentSum` に 0 を追加します。
コードの残りの部分は、どちらの方法でも同じです。バイナリ文字列を入力として受け取ります。 `maximizeSum` 関数を使用して、文字列を分割するときに可能な最大合計を計算します。この結果はユーザーに表示されます。
これらのコードは C コンパイラでコンパイルして実行でき、バイナリ文字列を入力すると、指定された条件に従って文字列を分割した最大値を出力します。
###結論は###以上がC++ を使用して指定された条件に基づいて指定されたバイナリ文字列を分割し、合計を最大化しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。