Leetcode — 尋找包含字元的單字
這是一個簡單的問題,描述為:
給你一個 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中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

在使用IntelliJIDEAUltimate版本啟動Spring...

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...

在使用TKMyBatis進行數據庫查詢時,如何優雅地獲取實體類變量名以構建查詢條件,是一個常見的難題。本文將針...
