数値を文字列形式で指定した場合、0 個以上の要素を削除した後、8 で割り切れるようになる場所を見つける必要があります。は文字列の部分列であり、8 で割り切れます。変更された文字列を返すか、不可能な場合は -1 を返します。
割り算の法則によれば、最後の 3 桁が 8 で割り切れる数値は、8 でも割り切れます。たとえば、56992992 と 476360 は 8 で割り切れますが、2587788 は割り切れません。結果が整数の場合、元の数値は 8 で割り切れます。
メソッドを詳しく説明するいくつかの入力シナリオを見てみましょう -
このメソッドに渡された入力が 8 で割り切れる部分文字列を含む数値文字列である場合、結果リストで 8-
で割り切れる部分文字列を取得できます。 リーリーメソッドへの入力が 8 で割り切れる部分文字列を含まない数値文字列である場合、出力結果は -
として返されます。 リーリー ###アルゴリズム###
###例###
ご覧のとおり、簡単な観察の後は、サブセットが存在するかどうかを確認するだけで済みます。文字列にサブシーケンスが含まれているかどうかをチェックします。最悪の場合は文字列全体がチェックされます。したがって、長さ n の数値文字列が与えられた場合、最悪の場合の時間計算量は O(126*n)、つまり O(n) になります。
以上が数値文字列から文字を削除して 8 で割り切れるようにする C++ プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。