目次
イラスト
ここで、文字列を「tu」、「torialsPoin」、「t」に分割できます。したがって、3 番目の文字列は最初の 2 つの文字列の部分文字列になります。
どの文字の頻度も 3 を超えないため、指定された条件に基づいて文字列を 3 つの部分文字列に分割することはできません。
このメソッドでは、配列を使用して各文字の頻度を保存します。その後、頻度が 3 以上の文字を確認します。
方法 2
このメソッドでは、まず文字列を文字配列に変換します。その後、 count() メソッドを使用して、配列内の特定の文字の頻度をカウントします。
- サイズ「len 1」の配列を作成します。「len」は文字列の長さです。
ホームページ バックエンド開発 C++ 文字列を 3 つの部分文字列に分割できるかどうかを確認します。1 つの部分文字列は他の 2 つの部分文字列の部分文字列です。

文字列を 3 つの部分文字列に分割できるかどうかを確認します。1 つの部分文字列は他の 2 つの部分文字列の部分文字列です。

Sep 22, 2023 am 11:53 AM
文字列の分割 部分文字列 診る

文字列を 3 つの部分文字列に分割できるかどうかを確認します。1 つの部分文字列は他の 2 つの部分文字列の部分文字列です。

この問題では、3 番目の部分文字列が最初の 2 つの部分文字列の部分文字列になるように、指定された文字列を分割する必要があります。

解決策を考えてみましょう。最初の 2 つの文字列に 3 番目の文字列のすべての文字が含まれている場合にのみ、3 番目の文字列を最初の 2 つの文字列の部分文字列にすることができます。したがって、指定された文字列内で頻度が 3 を超える文字を少なくとも 1 つ見つける必要があり、その 1 文字の 3 番目の部分文字列を取得できます。

問題文 - N 個の小文字のアルファベットを含む文字列 str が与えられています。部分文字列 c が a と b の部分文字列になるように、文字列を 3 つの部分文字列 a、b、c に分割できるかどうかを確認する必要があります。 3 つの部分文字列が見つかるかどうかに応じて、「はい」または「いいえ」を出力します。

###例### リーリー リーリー

イラスト

ここで、文字列を「tu」、「torialsPoin」、「t」に分割できます。したがって、3 番目の文字列は最初の 2 つの文字列の部分文字列になります。

リーリー リーリー

イラスト

どの文字の頻度も 3 を超えないため、指定された条件に基づいて文字列を 3 つの部分文字列に分割することはできません。

リーリー リーリー

イラスト

指定された条件によると、3 つの部分文字列

は 'h'、'h'、および 'hhahah' になります。 方法1

このメソッドでは、配列を使用して各文字の頻度を保存します。その後、頻度が 3 以上の文字を確認します。

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

ステップ 1
    - 長さ 26 の「freq」配列を定義します。
  • ステップ 2
  • - 文字列をループして、文字の頻度をカウントします。 for ループで、freq[str[i] – ‘a’] の値をインクリメントします。ここで、str[i] – ‘a’ は 0 ~ 26 のインデックスを与えます。
  • ステップ 3
  • - 次に、「freq」配列をループし、配列インデックスの値が「3」より大きい場合に true を返します。
  • ステップ 4
  • - ループが終了すると true を返します。
  • ステップ 5
  • - isSUbStringPossible() 関数の戻り値に基づいて、「はい」または「いいえ」を出力します。
  • ###例### リーリー ###出力### リーリー 時間計算量 - O(N)、文字列を反復処理する場合。

  • 定長配列を使用するため、空間計算量 - O(1)。

方法 2

このメソッドでは、まず文字列を文字配列に変換します。その後、 count() メソッドを使用して、配列内の特定の文字の頻度をカウントします。

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

ステップ 1

- サイズ「len 1」の配列を作成します。「len」は文字列の長さです。

ステップ 2
    - strcpy() メソッドを使用して、文字列を char 配列にコピーします。
  • ステップ 3
  • - for ループを合計 26 回繰り返します。
  • ステップ 4
  • - for ループで count() メソッドを使用して、特定の文字の出現数をカウントします。
  • count() メソッドは、最初の引数として開始位置への参照、2 番目の引数として終了位置への参照、そして 3 番目の引数として文字を受け取ります。

    ここでは、文字の ASCII 値をパラメータとして渡す必要があり、I ‘a’ を使用して値を取得します。
  • ステップ 5 - count() メソッドが 3 以上を返す場合は true を返します。

  • ステップ 6

    - ループが終了すると false を返します。
  • ###例### リーリー ###出力### リーリー 時間計算量 - count() メソッドが char 配列を反復して文字数をカウントするため、O(N)。また、strcpy() メソッドには O(N) 時間がかかります。

  • 文字列を文字配列に格納するため、空間複雑度 - O(N)。
  • ###結論は###

    文字列を 3 つの部分文字列に分割し、1 つの部分文字列が他の 2 つの部分文字列の部分文字列になるようにする 2 つの方法を学習しました。 2 番目の方法のコードは読みやすく、初心者にも優しいですが、時間とスペースがより高価になります。

以上が文字列を 3 つの部分文字列に分割できるかどうかを確認します。1 つの部分文字列は他の 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)

Pythonでアプリケーションが開いているかどうかを確認するにはどうすればよいですか? Pythonでアプリケーションが開いているかどうかを確認するにはどうすればよいですか? Aug 26, 2023 pm 06:49 PM

実行されるプログラムをプロセスと呼びます。プロセスは、現在のオペレーティング システム上で実行されているアプリケーション、またはオペレーティング システムに関連するアプリケーションです。アプリケーションがオペレーティング システムに関連付けられている場合、アプリケーションは最初にそれ自体を実行するプロセスを作成します。他のアプリケーションは実行のためにオペレーティング システム サービスに依存します。ほとんどのアプリケーションは、オペレーティング システム サービスと、オペレーティング システム、ソフトウェア、およびハードウェアを維持するバックグラウンド アプリケーションです。 Python では、アプリケーションが開いているかどうかを確認するさまざまな方法があります。一つずつ詳しく見ていきましょう。 psutil.process_iter() 関数の使用 psutil は、実行中のプロセスとシステム使用率に関する情報を取得するインターフェイスをユーザーに提供する Python のモジュールです。

Teams でスペルチェックが機能しない [修正済み] Teams でスペルチェックが機能しない [修正済み] Mar 06, 2024 am 09:10 AM

Teams でスペルチェックが機能しなくなる場合があることに気づき始めました。スペル チェックは効果的なコミュニケーションに不可欠なツールであり、これに対する攻撃はワークフローに重大な混乱を引き起こす可能性があります。この記事では、スペル チェックが期待どおりに機能しない一般的な理由と、スペル チェックを以前の状態に戻す方法について説明します。そのため、Teams でスペル チェックが機能しない場合は、この記事で説明されている解決策に従ってください。 Microsoft のスペルチェックが機能しないのはなぜですか? Microsoft のスペル チェックが正しく機能しない理由はいくつか考えられます。これらの理由には、互換性のない言語設定、スペルチェック機能の無効化、MSTeam または MSOffice のインストールの破損などが含まれます。また、古い MSTeam と MSOf

Python でオブジェクトが反復可能かどうかを確認するにはどうすればよいですか? Python でオブジェクトが反復可能かどうかを確認するにはどうすればよいですか? Aug 25, 2023 pm 10:05 PM

反復可能オブジェクトは、ループまたは反復可能関数を使用してすべての要素を反復できるオブジェクトです。リスト、文字列、辞書、タプルなどはすべて反復可能オブジェクトと呼ばれます。 Python 言語では、オブジェクトが反復可能かどうかを確認するさまざまな方法があります。一つずつ見ていきましょう。ループの使用 Python には 2 つのループ手法があります。1 つは「for」ループを使用し、もう 1 つは「while」ループを使用します。これら 2 つのループのいずれかを使用して、特定のオブジェクトが反復可能かどうかを確認できます。例 この例では、for ループを使用してオブジェクトを反復し、反復されているかどうかを確認します。以下はコードです。 l=["リンゴ",22,"オレンジ

MySQL で LOCATE 関数を使用して文字列内の部分文字列の位置を見つける方法 MySQL で LOCATE 関数を使用して文字列内の部分文字列の位置を見つける方法 Jul 25, 2023 am 09:45 AM

MySQL で LOCATE 関数を使用して文字列内の部分文字列の位置を見つける方法 MySQL には、文字列の処理に使用できる関数が多数あります。中でも LOCATE 関数は、文字列内の部分文字列の位置を見つけるのに使用できる非常に便利な関数です。 LOCATE 関数の構文は次のとおりです。 LOCATE(substring,string,[position]) ここで、substring は検索する部分文字列、string は検索する部分文字列です。

Java で部分文字列の出現数を再帰的にカウントする Java で部分文字列の出現数を再帰的にカウントする Sep 17, 2023 pm 07:49 PM

2 つの文字列 str_1 と str_2 を指定します。目的は、再帰的プロシージャを使用して、文字列 str1 内の部分文字列 str2 の出現数をカウントすることです。再帰関数は、その定義内で自分自身を呼び出す関数です。 str1 が「Iknowthatyouknowthatiknow」、str2 が「know」の場合、出現回数は -3 になります。例を通して理解しましょう。たとえば、入力 str1="TPisTPareTPamTP"、str2="TP"; 出力 Countofoccurrencesofasubstringrecursi

Windows 11 で SSD の健康状態を確認するにはどうすればよいですか? Win11でSSDの健康状態を確認する方法 Windows 11 で SSD の健康状態を確認するにはどうすればよいですか? Win11でSSDの健康状態を確認する方法 Feb 14, 2024 pm 08:21 PM

Windows 11 で SSD の健康状態を確認するにはどうすればよいですか? SSD は読み取り、書き込み、アクセス速度が速いため、急速に HDD に取って代わりつつありますが、たとえ信頼性が高くても、Windows 11 で SSD の状態をチェックする必要があります。操作方法は?このチュートリアルでは、エディターがその方法を共有します。方法 1: WMIC1 を使用し、Win + R キーの組み合わせを使用して「wmic」と入力し、[OK] を押すかクリックします。 Enter2. 次に、次のコマンドを入力または貼り付けて、SSD の健全性ステータスを確認します: diskdrivegetstatus 「ステータス: OK」メッセージが表示された場合、SSD ドライブは正常に動作しています。

strtok_r() 関数は C 言語の関数であり、その機能は文字列を一連の部分文字列に分割することです。 strtok_r() 関数は C 言語の関数であり、その機能は文字列を一連の部分文字列に分割することです。 Aug 26, 2023 am 09:45 AM

この関数は strtok() 関数に似ています。唯一の主な違いは、リエントラント関数と呼ばれる _r です。リエントラント関数は、実行中に中断できる関数です。このタイプの関数は、実行を再開するために使用できます。したがって、リエントラント関数はスレッドセーフです。つまり、損傷を引き起こすことなくスレッドによって安全に中断できます。 strtok_r() 関数には、context と呼ばれる追加のパラメータがあります。このようにして、機能を正しい場所に復元できます。 strtok_r() 関数の構文は次のとおりです。 #include<string.h>char*strtok_r(char*string,constchar*limiter,char**

JavaでArrayListに特定の要素が含まれているかどうかを確認するにはどうすればよいですか? JavaでArrayListに特定の要素が含まれているかどうかを確認するにはどうすればよいですか? Sep 03, 2023 pm 04:09 PM

List インターフェイスの contains() メソッドを使用して、リストにオブジェクトが存在するかどうかを確認できます。 contains() メソッド booleancontains(Objecto) このリストに指定された要素が含まれる場合、true を返します。より正式には、このリストに (o==null?e==null:o.equals(e)) のような要素 e が少なくとも 1 つ含まれる場合にのみ true を返します。パラメータ c - このリスト内の存在がテストされる要素。戻り値 このリストに指定された要素が含まれている場合は true を返します。 ClassCastException をスローします - 指定された要素の型がこのリストと互換性がない場合 (オプション)。 NullP

See all articles