ホームページ > Java > &#&チュートリアル > Leetcode — 文字を含む単語の検索

Leetcode — 文字を含む単語の検索

Patricia Arquette
リリース: 2025-01-08 06:26:41
オリジナル
1062 人が閲覧しました

Leetcode — Find Words Containing Character

次のような簡単な問題です:

文字列 word と文字 x のインデックス 0 の配列が与えられます。

文字 x を含む単語を表すインデックスの配列を返します。

返される配列の順序は任意であることに注意してください。

例 1:

入力: 単語 = ["leet","code"]、x = "e"
出力: [0,1]
説明: 「e」は、「leet」と「code」の両方の単語に出現します。したがって、インデックス 0 と 1 を返します。

例 2:

入力: 単語 = ["abc","bcd","aaaa","cbc"], x = "a"
出力: [0,2]
説明: 「abc」および「aaaa」には「a」が出現します。したがって、インデックス 0 と 2 を返します。

例 3:

入力: 単語 = ["abc","bcd","aaaa","cbc"], x = "z"
出力: []
説明: どの単語にも「z」は出現しません。したがって、空の配列を返します。

制約:

1

1

x は英小文字です。

words[i] は英小文字のみで構成されます。

この問題を解決するには、単語リストを反復処理し、各単語で文字が含まれているかどうかを確認し、含まれている場合はそのインデックスを応答リストに保存する必要があります。

class Solution {
    public List<Integer> findWordsContaining(String[] words, char x) {
        // create response
        final List<Integer> indexes = new ArrayList<>();

        // iterate words string array
        for(int i=0;i<words.length;i++){
            // check if char exists into the word
            if(words[i].indexOf(x) != -1){
                indexes.add(i); // if yes add index into the response
            }
        }

        // return searched indexes
        return indexes;
    }
}
ログイン後にコピー

実行時間: 1 ミリ秒、Java オンライン送信の 100.00% より高速です。

メモリ使用量: 44.95 MB、Java オンライン送信の 49.76% 未満。

ラムダ/関数のアプローチを使用する場合は、通常はクリーンですが、パフォーマンスへの負担が大きくなります。

class Solution {
    public List<Integer> findWordsContaining(String[] words, char x) {
        return IntStream.range(0, words.length)
                .boxed() // convert primitive into Class related (int -> Integer)
                .map(i -> getIndexIfCharExistsInWord(words[i], i, x))
                .filter(Objects::nonNull) // to remove null ones from mapping
                .collect(Collectors.toList());
    }

    public Integer getIndexIfCharExistsInWord(final String word, final int i, final char x) {
        return word.indexOf(x) != -1 ? i : null;
    }
}
ログイン後にコピー

実行時間: 9 ミリ秒、Java オンライン送信の 2.72% よりも高速です。

メモリ使用量: 44.90 MB、Java オンライン提出の 66.32% 未満。

それだけです!他に議論したいことがあれば、お気軽にコメントしてください。何か見逃した場合はお知らせください。適宜更新します。

次の投稿まで! :)

以上がLeetcode — 文字を含む単語の検索の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート