首頁 > Java > java教程 > Leetcode — 尋找包含字元的單字

Leetcode — 尋找包含字元的單字

Patricia Arquette
發布: 2025-01-08 06:26:41
原創
1025 人瀏覽過

Leetcode — Find Words Containing Character

這是一個簡單的問題,描述為:

給你一個 0 索引的字串單字陣列和一個字元 x。

傳回表示包含字元 x 的單字的索引陣列。

請注意,傳回的陣列可以是任意順序。

範例1:

輸入:words = ["leet","code"], x = "e"
輸出:[0,1]
解釋:「e」出現在兩個單字:「leet」和「code」。因此,我們返回索引 0 和 1。

範例2:

輸入:words = ["abc","bcd","aaaa","cbc"], x = "a"
輸出:[0,2]
解釋:「a」出現在「abc」和「aaaa」。因此,我們返回索引 0 和 2。

範例3:

輸入:words = ["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;
    }
}
登入後複製

運行時間:1ms,比Java線上提交的100.00%快。

記憶體使用:44.95 MB,低於 Java 線上提交的 49.76%。

如果您想採用 lambda/函數方法,這種方法通常更乾淨,但對效能的影響更大,它看起來像這樣:

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;
    }
}
登入後複製

運行時間:9ms,比 Java 線上提交的 2.72% 快。

記憶體使用:44.90 MB,低於 Java 線上提交的 66.32%。

就是這樣!如果還有什麼要討論的,請隨時發表評論,如果我錯過了任何內容,請告訴我,以便我進行相應更新。

直到下一篇文章! :)

以上是Leetcode — 尋找包含字元的單字的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板