回覧文

DDD
DDDオリジナル
2024-11-03 21:26:29342ブラウズ

Circular Sentence

2490。回覧文

難易度: 簡単

トピック: 文字列

は、先頭または末尾のスペースのない単一スペースで区切られた単語のリストです。

  • たとえば、「He​​llo World」、「HELLO」、「hello world hello world」はすべて文です。

単語は、英語の大文字と小文字のみで構成されます。英語の大文字と小文字は別のものとみなされます。

次の場合、文は 循環です。

  • 単語の最後の文字は、次の単語の最初の文字と同じです。
  • 最後の単語の最後の文字は、最初の単語の最初の文字と同じです。

たとえば、「leetcode の演習は楽しいですね」、「eetcode」、「leetcode は魂を食べる」などはすべて循環文です。ただし、「リートコードはクールです」、「リートコードは嬉しいです」、「リートコードは」、「リートコードは好きです」は循環文ではありません

文字列文が与えられた場合、それがcircular_の場合は_trueを返します。それ以外の場合は、

falseを返します。

例 1:

  • 入力: 文 = "leetcode の演習は楽しいですね"
  • 出力: true
  • 説明: 文中の単語は ["leetcode"、"exercise"、"sound"、"delightful"] です。
      leetcode の最後の文字は、演習の最初の文字と同じです。
    • 演習の最後の文字はサウンドの最初の文字と同じです。
    • sound の最後の文字は、deliful の最初の文字と同じです。
    • delightful の最後の文字は、leetcode の最初の文字と同じです。
    • 文章は循環しています。

例 2:

  • 入力: 文 = "eetcode"
  • 出力: true
  • 説明: 文内の単語は ["eetcode"] です。
      eetcode の最後の文字は、eetcode の最初の文字と同じです。
    • 文章は循環しています。

例 3:

  • 入力: 文 = "Leetcode はクールです"
  • 出力: false
  • 説明: 文中の単語は ["Leetcode"、"is"、"cool"] です。
      Leetcode の最後の文字が最初の文字と等しくありません。
    • 文章は循環していません。

制約:

    1 文は英大文字と小文字とスペースのみで構成されます。
  • 文内の単語は 1 つのスペースで区切られます。
  • 先頭または末尾にスペースはありません。

ヒント:

  1. 空白の前の文字と空白の後の文字を確認してください。
  2. 文の最初の文字と最後の文字を確認してください。

解決策:

2 つの条件を確認する必要があります:

  1. 各単語の最後の文字は、次の単語の最初の文字と一致する必要があります。
  2. 最後の単語の最後の文字は最初の単語の最初の文字と一致し、循環する必要があります。

このソリューションを PHP で実装してみましょう: 2490。回覧文

<?php
/**
 * @param String $sentence
 * @return Boolean
 */
function isCircularSentence($sentence) {
    ...
    ...
    ...
    /**
     * go to ./solution.php
     */
}

// Test cases
$sentence1 = "leetcode exercises sound delightful";
$sentence2 = "eetcode";
$sentence3 = "Leetcode is cool";

echo isCircularSentence($sentence1) ? "true\n" : "false\n"; // Output: true
echo isCircularSentence($sentence2) ? "true\n" : "false\n"; // Output: true
echo isCircularSentence($sentence3) ? "true\n" : "false\n"; // Output: false
?>

説明:

  1. 文の分割: 文を単語に分割するには、explode(" ", $sentence) を使用します。
  2. 単語のループ:
    • 各単語について、substr($words[$i], -1) を使用して最後の文字を取得します。
    • 次の単語の最初の文字を取得します。最後の単語については、モジュロ (%) を使用して最初の単語にラップアラウンドします。
  3. 比較:
    • 単語の最後の文字が次の単語の最初の文字と一致しない場合は、false を返します。
    • 不一致が見つからずにループが完了した場合、文は循環しているため、true を返します。

このコードは、各単語ペアの循環条件を効率的にチェックし、シンプルかつ最適なものにします。

連絡先リンク

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

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

  • LinkedIn
  • GitHub

以上が回覧文の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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