ホームページ >バックエンド開発 >PHPチュートリアル >文字を削除しておしゃれな文字列に

文字を削除しておしゃれな文字列に

DDD
DDDオリジナル
2024-11-02 18:37:31203ブラウズ

Delete Characters to Make Fancy String

1957 年。文字を削除しておしゃれな文字列を作成

難易度: 簡単

トピック: 文字列

派手な文字列は、連続する 3 つの文字が等しくない文字列です。

文字列 s が与えられた場合、s から 最小限 の文字を削除して、派手にします。

削除後の最後の文字列を返します。答えは常に一意であることがわかります。

例 1:

  • 入力: s = "leeetcode"
  • 出力: "leetcode"
  • 説明: 最初の「e」グループから「e」を削除して、「leetcode」を作成します。 連続する 3 文字は等しくないため、「leetcode」を返します。

例 2:

  • 入力: s = "aaabaaaaa"
  • 出力: "aabaa"
  • 説明: 最初の「a」グループから「a」を削除して、「aabaaaa」を作成します。 2 番目の「a」グループから 2 つの「a」を削除して、「aabaa」を作成します。 連続する 3 文字は等しくないため、「aabaa」を返します。

例 3:

  • 入力: s = "aab"
  • 出力: "aab"
  • 説明: 連続する 3 つの文字は等しくないため、「aab」を返します。

制約:

  • 1 5
  • s は英小文字のみで構成されます。

ヒント:

  1. 連続する 3 文字以上が等しい場合に文字を削除する最適な方法は何ですか?
  2. 連続する 3 文字以上が等しい場合は、そのうちの 2 文字を保持し、残りを削除します。

解決策:

最終的な文字列では、連続する 3 つの文字が同じでないことを確認する必要があります。入力文字列を反復処理し、前の 2 文字を追跡して新しい「派手な」文字列を構築します。連続する 3 番目の文字が最後の 2 文字と一致する場合は、それをスキップします。それ以外の場合は、出力に追加します。

このソリューションを PHP で実装してみましょう: 1957。文字を削除しておしゃれな文字列を作成します

<?php
/**
 * @param String $s
 * @return String
 */
function makeFancyString($s) {
    ...
    ...
    ...
    /**
     * go to ./solution.php
     */
}

// Example usage:
echo makeFancyString("leeetcode"); // Output: "leetcode"
echo "\n";
echo makeFancyString("aaabaaaa");  // Output: "aabaa"
echo "\n";
echo makeFancyString("aab");       // Output: "aab"
?>

説明:

  1. 変数の初期化:

    • $result: これは、最終的な「派手な」文字列を保存します。
  2. 文字列を反復処理します:

    • 各文字について、結果の最後の 2 文字とトリオを形成しているかどうかを確認します。
    • 存在する場合は、$result への追加をスキップします。
    • そうでない場合は、$result に追加します。
  3. 結果を返す:

    • $result 文字列には、連続する 3 つの同一文字が含まれなくなりました。

複雑さの分析

  • 時間計算量: O(n)、ここで n は入力文字列の長さです。各文字を 1 回処理します。
  • 空間複雑度: O(n)、出力文字列の保存用。

このソリューションは制約を効率的に満たし、最終的な文字列に 3 つの連続した同一文字が含まれないようにします。

連絡先リンク

このシリーズが役立つと思われた場合は、GitHub で リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!

このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:

  • LinkedIn
  • GitHub

以上が文字を削除しておしゃれな文字列にの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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