目次
指定された配列内で共通の文字を持たない文字列のペアの長さの合計を最大化するプログラムを実装します。
イラスト
文字列「abcd」と「wxyz」には共通の文字はありません。結果として、2 つの文字列を合わせた長さは 4 × 4 となり、これは 8 に等しく、すべての実行可能なペアの中で最長の長さになります。
文字列「abcd」と「hij」には共通の文字はありません。結果として、2 つの文字列を合わせた長さは 4 3 となり、これは 8 に等しく、すべての実行可能なペアの中で最長の長さになります。
文字列「abcdx」と「lmno」には共通の文字はありません。結果として、2 つの文字列を合わせた長さは 5 4 となり、これは 9 に等しく、すべての実行可能なペアの中で最長の長さになります。
文字列「coat」と「hij」には共通の文字はありません。結果として、2 つの文字列を合わせた長さは 4 3 となり、これは 8 に等しく、すべての実行可能なペアの中で最長の長さになります。
この問題を解決するか、次のように、指定された配列内で共通の文字を持たない文字列のペアの長さの合計を最大化する方法を見つけてください。とはいえ、上記の問題に対処する最も簡単な方法は、文字列配列の考えられる各ペアを作成し、共通の文字を持たないすべての考えられるペアの文字列長の最大合計を表示することです。
同様に、指定された配列内に共通の文字を持たない文字列のペアの長さの合計を最大化することができます。
ホームページ バックエンド開発 C++ 配列を指定して、同じ文字を持たない 2 つの文字列の長さの最大合計を見つけます。

配列を指定して、同じ文字を持たない 2 つの文字列の長さの最大合計を見つけます。

Aug 29, 2023 pm 06:45 PM
配列 長さ

配列を指定して、同じ文字を持たない 2 つの文字列の長さの最大合計を見つけます。

この記事の目的は、指定された配列内で共通の文字を持たない文字列のペアの長さの合計を最大化するプログラムを実装することです。定義上、文字列は文字の集合です。

###問題文###

指定された配列内で共通の文字を持たない文字列のペアの長さの合計を最大化するプログラムを実装します。

例 1

リーリー リーリー

イラスト

文字列「abcd」と「wxyz」には共通の文字はありません。結果として、2 つの文字列を合わせた長さは 4 × 4 となり、これは 8 に等しく、すべての実行可能なペアの中で最長の長さになります。

例 2

リーリー リーリー

イラスト

文字列「abcd」と「hij」には共通の文字はありません。結果として、2 つの文字列を合わせた長さは 4 3 となり、これは 8 に等しく、すべての実行可能なペアの中で最長の長さになります。

例 3

リーリー リーリー

イラスト

文字列「abcdx」と「lmno」には共通の文字はありません。結果として、2 つの文字列を合わせた長さは 5 4 となり、これは 9 に等しく、すべての実行可能なペアの中で最長の長さになります。

例 4

リーリー リーリー

イラスト

文字列「coat」と「hij」には共通の文字はありません。結果として、2 つの文字列を合わせた長さは 4 3 となり、これは 8 に等しく、すべての実行可能なペアの中で最長の長さになります。

###解決###

指定された配列内で共通の文字を持たない文字列のペアの長さの合計を最大化するには、次のアプローチを使用します。

この問題を解決するか、次のように、指定された配列内で共通の文字を持たない文字列のペアの長さの合計を最大化する方法を見つけてください。とはいえ、上記の問題に対処する最も簡単な方法は、文字列配列の考えられる各ペアを作成し、共通の文字を持たないすべての考えられるペアの文字列長の最大合計を表示することです。

ビット操作の概念を使用すると、上記の戦略を改善することもできます。ここでの目標は、共通の文字を共有せず、長さの合計が可能な限り長い文字列のペアを識別する前に、各文字列を同等のビットマスク整数に変換することです。

ビットマスキングが現在のトピックです。ビットマスクとは何ですか?

まず整数とは何かを覚えておく必要があります。整数は、単につなぎ合わされたビットのコレクションです。ビット マスキングの概念は、バイナリ形式を使用して数値をグラフィックで表現することです。

簡単に言えば、「ビットマスク」は何でも指定できる 2 進数です。

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

以下は、指定された配列内で共通の文字を持たない文字列のペアの長さの合計を最大化するプログラムを実装するためのアルゴリズムです。

ステップ 1

- 始めましょう

  • ステップ 2 - memset() 関数を作成して、ビットマスク配列をゼロで初期化します。文字列 arr[] 配列内の文字列のビット単位の OR を記録するために使用される初期サイズ L のビットマスク。

  • ステップ 3 - 応答を保存するには、maxLength 変数の値を 0 に設定します。

  • ステップ 4 - 変数 i を使用して範囲 [0, L] を反復しながら次の操作を実行します -

  • ステップ 5 - ビットマスク[i] の値をマスク[i]|1(arr[i][j] - 'a') として定義し、範囲 [0] で反復します。 , S]。ここで、S は文字列のサイズです。

  • ステップ 6 - 整数変数 j を使用して範囲 [0, i] を反復処理し、ビットマスクの場合は maxLength の値を arr[i].length() の最大値に設定します。 [i] bitmask[j] とのビット単位の AND の結果が 0 でない場合、arr[j].length()。

  • ステップ 7 - 最後に、得られた結果を印刷します。

  • ステップ 8 - 停止

  • 例: C プログラム これは、指定された配列内で共通の文字を持たない文字列のペアの長さの合計を最大化するために上で書かれたアルゴリズムの C プログラム実装です。

  • これは、指定された配列内で共通の文字を持たない文字列のペアの長さの合計を最大化するために上で書かれたアルゴリズムの C プログラム実装です。
リーリー ###出力### リーリー ###結論は###

同様に、指定された配列内に共通の文字を持たない文字列のペアの長さの合計を最大化することができます。

この記事では、指定された配列内で共通の文字を持たない文字列のペアの長さの合計を最大化するプログラムを取得するという課題に取り組みます。

C プログラミング コードは、指定された配列内で共通の文字を持たない文字列のペアの長さの合計を最大化するアルゴリズムとともにここで提供されます。

以上が配列を指定して、同じ文字を持たない 2 つの文字列の長さの最大合計を見つけます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

foreach ループを使用して PHP 配列から重複要素を削除するにはどうすればよいですか? foreach ループを使用して PHP 配列から重複要素を削除するにはどうすればよいですか? Apr 27, 2024 am 11:33 AM

foreach ループを使用して PHP 配列から重複要素を削除する方法は次のとおりです。配列を走査し、要素がすでに存在し、現在の位置が最初に出現しない場合は、要素を削除します。たとえば、データベース クエリの結果に重複レコードがある場合、このメソッドを使用してそれらを削除し、重複レコードのない結果を取得できます。

PHP 配列ディープ コピーの技術: さまざまな方法を使用して完璧なコピーを実現する PHP 配列ディープ コピーの技術: さまざまな方法を使用して完璧なコピーを実現する May 01, 2024 pm 12:30 PM

PHP で配列をディープ コピーする方法には、json_decode と json_encode を使用した JSON エンコードとデコードが含まれます。 array_map と clone を使用して、キーと値のディープ コピーを作成します。シリアル化と逆シリアル化には、serialize と unserialize を使用します。

python_python の繰り返し文字列チュートリアルで文字列を繰り返す方法 python_python の繰り返し文字列チュートリアルで文字列を繰り返す方法 Apr 02, 2024 pm 03:58 PM

1. まず pycharm を開いて、pycharm ホームページに入ります。 2. 次に、新しい Python スクリプトを作成し、右クリックして [新規] をクリックし、[Pythonfile] をクリックします。 3. 文字列、コード: s="-" を入力します。 4. 次に、文字列内のシンボルを 20 回繰り返す必要があります (コード: s1=s*20)。 5. 印刷出力コード、コード: print(s1) を入力します。 6. 最後にスクリプトを実行すると、下部に戻り値が表示されます。 - 20 回繰り返しました。

PHP 配列キー値の反転: さまざまな方法のパフォーマンス比較分析 PHP 配列キー値の反転: さまざまな方法のパフォーマンス比較分析 May 03, 2024 pm 09:03 PM

PHP の配列キー値の反転メソッドのパフォーマンスを比較すると、array_flip() 関数は、大規模な配列 (100 万要素以上) では for ループよりもパフォーマンスが良く、所要時間が短いことがわかります。キー値を手動で反転する for ループ方式は、比較的長い時間がかかります。

PHP 配列のディープ コピーのベスト プラクティス: 効率的な方法を発見する PHP 配列のディープ コピーのベスト プラクティス: 効率的な方法を発見する Apr 30, 2024 pm 03:42 PM

PHP で配列のディープ コピーを実行するためのベスト プラクティスは、 json_decode(json_encode($arr)) を使用して配列を JSON 文字列に変換し、それから配列に戻すことです。 unserialize(serialize($arr)) を使用して配列を文字列にシリアル化し、それを新しい配列に逆シリアル化します。 RecursiveIteratorIterator を使用して、多次元配列を再帰的に走査します。

PHP 配列の多次元ソートの実践: 単純なシナリオから複雑なシナリオまで PHP 配列の多次元ソートの実践: 単純なシナリオから複雑なシナリオまで Apr 29, 2024 pm 09:12 PM

多次元配列のソートは、単一列のソートとネストされたソートに分類できます。単一列のソートでは、array_multisort() 関数を使用して列ごとにソートできますが、ネストされたソートでは、配列を走査してソートするための再帰関数が必要です。具体的な例としては、製品名による並べ替えや、売上数量や価格による化合物の並べ替えなどがあります。

データソートにおけるPHP配列グループ化機能の応用 データソートにおけるPHP配列グループ化機能の応用 May 04, 2024 pm 01:03 PM

PHP の array_group_by 関数は、キーまたはクロージャ関数に基づいて配列内の要素をグループ化し、キーがグループ名、値がグループに属する要素の配列である連想配列を返すことができます。

PHP 配列のマージおよび重複排除アルゴリズム: 並列ソリューション PHP 配列のマージおよび重複排除アルゴリズム: 並列ソリューション Apr 18, 2024 pm 02:30 PM

PHP 配列のマージおよび重複排除アルゴリズムは、元の配列を小さなブロックに分割して並列処理する並列ソリューションを提供し、メイン プロセスは重複排除するブロックの結果をマージします。アルゴリズムのステップ: 元の配列を均等に割り当てられた小さなブロックに分割します。重複排除のために各ブロックを並行して処理します。ブロックの結果をマージし、再度重複排除します。

See all articles