java - 力扣1002。查找字符串之间的共同字符-Java

标签 java algorithm

问题是: 给定一个仅由小写字母组成的字符串数组 A,返回出现在列表中所有字符串(包括重复项)中的所有字符的列表。例如,如果一个字符在所有字符串中出现 3 次但没有出现 4 次,则您需要在最终答案中包含该字符 3 次。

您可以按任何顺序返回答案。

示例 1:

输入:["bella","label","roller"] 输出:["e","l","l"]

示例 2:

输入:["cool","lock","cook"] 输出:["c","o"]

注意:

1 <= A.length <= 100

1 <= A[i].length <= 100

A[i][j]是小写字母

这是我的代码:

class Solution {
    public List<String> commonChars(String[] A) {
        List<String> charArr = new ArrayList<>();

        for(int i = 1; i<A.length ; i++){
            A[0].replaceAll("[^" + A[i] + "]", "");
        }
        for(int i=0; i<A[0].length(); i++){
            charArr.add(Character.toString(A[0].charAt(i)));
        }
        return charArr;

    }
}

我得到的结果

输入: [“贝拉”,“标签”,“滚筒”]

输出: ["b","e","l","l","a"]

预期: [“e”,“l”,“l”]

显然字符没有被删除,谁能帮我解决这个问题?

最佳答案

不确定 java,但这是 python 中的第一个衬里

list(functools.reduce(lambda a,b: a&b, [Counter(c) for c in A]).elements())
>>> from collections import Counter
>>> import functools

>>> A = ["bella","label","roller"]
>>> list(functools.reduce(lambda a,b: a&b, [Counter(c) for c in A]).elements())
['e', 'l', 'l']
>>> A =  ["cool","lock","cook"]
>>> list(functools.reduce(lambda a,b: a&b, [Counter(c) for c in A]).elements())
['c', 'o']
>>>

关于java - 力扣1002。查找字符串之间的共同字符-Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55050466/

相关文章:

java - hibernate : C3p0 pool configuration slowing down entire server.

java - 使用 HTTPS 实现 RESTful Web 服务

java - Netbeans 的 RESTful Java 客户端 : javax. ws.rs.NotAcceptableException:HTTP 406 Not Acceptable

构造Hasse图的算法

Python:如何按对象的特征或属性对对象列表进行分组?

algorithm - 封闭一组椭圆一个一个椭圆

java - 尝试比较对象无法使用IF语句JAVA

java - 在java swing中注册外部字体的多种样式

algorithm - 如何从中间搜索尝试

algorithm - 提出用于处理矩阵形式的巨型数据的数据结构(将其视为 excel 表)