Daily LeetCode – day0008 1408. String Matching in an Array

// 1408. String Matching in an Array
class Solution {
    public List<String> stringMatching(String[] words) {
        List<String> ans = new ArrayList<>();
        String allWords = String.join(",", words);
        for (String word : words) {
            if (allWords.indexOf(word) != allWords.lastIndexOf(word)) {
                ans.add(word);
            }
        }
        return ans;
    }
}
学习笔记:
这里使用的是一个String.join()函数,传入分隔符后可以传入数组或者迭代器。
这种方式比用StringBuilder再转回String还剩了1.3M的内存。
接下来就是最巧妙的地方了,从前往后找和从后往前找,找到这个单词两次也就是索引不同,找到这个单词一次就是索引相同。


关于樊轶群

一个善良的理想主义者。
此条目发表在每日LeetCode分类目录。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注