検索
ホームページバックエンド開発C++すべての部分文字列が異なるように文字列を最小限に変更します。

すべての部分文字列が異なるように文字列を最小限に変更します。

#文字列は、データ文字のシーケンスとフローを表す特定のオブジェクトです。文字列はデータ コンテナであり、常にテキスト形式で表されます。また、概念、比較、分割、連結、置換、トリム、長さ、内部化、等価、比較、および部分文字列の操作にも使用されます。 substring() は、保存されたデータの最初から最後までの間のデータを抽出するデータ調整処理です。 substring() は元の文字列を変更しません。データセット内に異なる文字がある場合、それらは異なるデータ要素として表現できます。たとえば、「a」と「r」は異なりますが、「r」と「r」は同じです。つまり、たとえば、orange という文字列には 6 つの異なる文字が含まれています。同様に、文字列 apple には 4 つの異なる文字のみが含まれます。

「s」が文字列であり、その文字列を異なるものにするためにすべての部分文字列に必要な最小変更数を見つける必要があるとします。

  • 文字列の長さ - 26

  • 指定された入力 - T は最初の行のテスト ケースであり、整数です。各テスト ケースには、26 文字を含む行が 1 行だけあります。

  • 出力 - 各テスト ケースの最小数の変更を取得します。

  • 論理メソッド フローの制約

    • 1
    • 1
今日の記事では、すべての部分文字列が異なるように文字列を変更する方法を学びます。

部分文字列を異なるものにするためのアルゴリズム

これは、変更を最小限に抑えながら、すべての部分文字列が区別されるように文字列を操作するための可能なアルゴリズムです。

  • 最初のステップ - 始めましょう。

  • ステップ 2 *-2 つのネストされたループを使用して部分文字列を生成します。

  • ステップ 3 - 外側のループの i = 0 から、文字列の長さが 1 減ります。

  • ステップ 4 - 内側のループは j = 0 から始まり、文字列の長さを 1 ずつ減らします。

  • ステップ5 *-ゼロ値を使用してカウント変数を構築します。

  • ステップ6 *-外側のループ内で、distinct_character変数を作成します。

  • ステップ 7 - 周波数配列を作成します。

  • ステップ 8- すべての要素をゼロに設定します。

  • ステップ 9 - string[j]-'a' の頻度が 0 であるかどうかを確認します。

  • ステップ 10- ゼロの場合は、1 ずつ増やします。

  • ステップ 11- それ以外の場合は、内部ループに分割します。

  • ステップ 12 - カウントが 0 より大きい場合は、カウントを返します。

  • ステップ 13 - それ以外の場合は、-1 を返します。

  • ステップ 14 - 終了。

すべての異なる部分文字列を作成するための構文

リーリー

この構文では、すべての部分文字列が異なるように文字列に最小限の変更を加える方法がわかります。

  • パラメータ

    • Start - 開始位置を宣言する必要があります。ここでの最初の文字のインデックスは 0 です。

    • End -これは最後にあるオプションのプロセスです(これに限定されません)。

    ###方法###
方法 1 - 文字列のすべての部分文字列を異なるものにする変更の最小数を見つけます。

文字列のすべての部分文字列が異なるようになる最小の変更数を見つけます

このメソッドでは、すべての部分文字列を異なるものにする方法を学びます。ここでは、すべてのキャラクターが異なる必要があります。文字数を見つける必要があるだけです。文字列の長さが 26 を超える場合は、文字列に変換するだけで済みます。ここでは、同じロジックを異なるロケールで記述します。

例 1: C の使用

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

例 2: Java を使用する場合

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

例 1: Python の使用

リーリー ###出力### リーリー ###結論は###

今日のこの記事では、最小限の変更ですべての部分文字列を異なるものにする方法を学びました。ここでは、C、Java、Python で説明されているアルゴリズムに従って、考えられるコードをいくつか作成しました。この主題についてより包括的な理解を得るのに役立つことを願っています。

以上がすべての部分文字列が異なるように文字列を最小限に変更します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はtutorialspointで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
C#対C:オブジェクト指向のプログラミングと機能C#対C:オブジェクト指向のプログラミングと機能Apr 17, 2025 am 12:02 AM

オブジェクト指向プログラミング(OOP)のC#とCの実装と機能には大きな違いがあります。 1)C#のクラス定義と構文はより簡潔であり、LINQなどの高度な機能をサポートします。 2)Cは、システムプログラミングと高性能のニーズに適した、より細かい粒状制御を提供します。どちらにも独自の利点があり、選択は特定のアプリケーションシナリオに基づいている必要があります。

XMLからCへ:データ変換と操作XMLからCへ:データ変換と操作Apr 16, 2025 am 12:08 AM

XMLからCへの変換とデータ操作の実行は、次の手順で達成できます。1)TinyXML2ライブラリを使用してXMLファイルを解析する、2)データのデータ構造にデータをマッピングし、3)データ操作のためのSTD :: VectorなどのC標準ライブラリを使用します。これらの手順を通じて、XMLから変換されたデータを処理および効率的に操作できます。

C#対C:メモリ管理とガベージコレクションC#対C:メモリ管理とガベージコレクションApr 15, 2025 am 12:16 AM

C#は自動ガベージコレクションメカニズムを使用し、Cは手動メモリ管理を使用します。 1。C#のゴミコレクターは、メモリを自動的に管理してメモリの漏れのリスクを減らしますが、パフォーマンスの劣化につながる可能性があります。 2.Cは、微細な管理を必要とするアプリケーションに適した柔軟なメモリ制御を提供しますが、メモリの漏れを避けるためには注意して処理する必要があります。

誇大広告を超えて:今日のCの関連性を評価します誇大広告を超えて:今日のCの関連性を評価しますApr 14, 2025 am 12:01 AM

Cは、現代のプログラミングにおいて依然として重要な関連性を持っています。 1)高性能および直接的なハードウェア操作機能により、ゲーム開発、組み込みシステム、高性能コンピューティングの分野で最初の選択肢になります。 2)豊富なプログラミングパラダイムとスマートポインターやテンプレートプログラミングなどの最新の機能は、その柔軟性と効率を向上させます。学習曲線は急ですが、その強力な機能により、今日のプログラミングエコシステムでは依然として重要です。

Cコミュニティ:リソース、サポート、開発Cコミュニティ:リソース、サポート、開発Apr 13, 2025 am 12:01 AM

C学習者と開発者は、Stackoverflow、RedditのR/CPPコミュニティ、CourseraおよびEDXコース、Github、Professional Consulting Services、およびCPPCONのオープンソースプロジェクトからリソースとサポートを得ることができます。 1. StackOverFlowは、技術的な質問への回答を提供します。 2。RedditのR/CPPコミュニティが最新ニュースを共有しています。 3。CourseraとEDXは、正式なCコースを提供します。 4. LLVMなどのGitHubでのオープンソースプロジェクトやスキルの向上。 5。JetBrainやPerforceなどの専門的なコンサルティングサービスは、技術サポートを提供します。 6。CPPCONとその他の会議はキャリアを助けます

C#対C:各言語が優れている場所C#対C:各言語が優れている場所Apr 12, 2025 am 12:08 AM

C#は、開発効率とクロスプラットフォームのサポートを必要とするプロジェクトに適していますが、Cは高性能で基礎となるコントロールを必要とするアプリケーションに適しています。 1)C#は、開発を簡素化し、ガベージコレクションとリッチクラスライブラリを提供します。これは、エンタープライズレベルのアプリケーションに適しています。 2)Cは、ゲーム開発と高性能コンピューティングに適した直接メモリ操作を許可します。

Cの継続的な使用:その持久力の理由Cの継続的な使用:その持久力の理由Apr 11, 2025 am 12:02 AM

C継続的な使用の理由には、その高性能、幅広いアプリケーション、および進化する特性が含まれます。 1)高効率パフォーマンス:Cは、メモリとハードウェアを直接操作することにより、システムプログラミングと高性能コンピューティングで優れたパフォーマンスを発揮します。 2)広く使用されている:ゲーム開発、組み込みシステムなどの分野での輝き。3)連続進化:1983年のリリース以来、Cは競争力を維持するために新しい機能を追加し続けています。

CとXMLの未来:新たなトレンドとテクノロジーCとXMLの未来:新たなトレンドとテクノロジーApr 10, 2025 am 09:28 AM

CとXMLの将来の開発動向は次のとおりです。1)Cは、プログラミングの効率とセキュリティを改善するためのC 20およびC 23の標準を通じて、モジュール、概念、CORoutinesなどの新しい機能を導入します。 2)XMLは、データ交換および構成ファイルの重要なポジションを引き続き占有しますが、JSONとYAMLの課題に直面し、XMLSchema1.1やXpath3.1の改善など、より簡潔で簡単な方向に発展します。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 中国語版

SublimeText3 中国語版

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

SublimeText3 Mac版

SublimeText3 Mac版

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