java 获取多个字符串中公共字符
时间: 2024-01-26 07:02:17 浏览: 70
java实现求两个字符串最长公共子串的方法
5星 · 资源好评率100%
可以使用一个字符数组来记录每个字符串中出现的字符,然后再遍历一遍字符数组,找出出现在所有字符串中的字符即可。
以下是示例代码:
```java
public static String getCommonChars(String[] strs) {
if (strs == null || strs.length == 0) {
return "";
}
int n = strs.length;
int[] count = new int[26];
Arrays.fill(count, Integer.MAX_VALUE);
for (String str : strs) {
int[] tmp = new int[26];
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
tmp[c - 'a']++;
}
for (int i = 0; i < 26; i++) {
count[i] = Math.min(count[i], tmp[i]);
}
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 26; i++) {
while (count[i]-- > 0) {
sb.append((char)('a' + i));
}
}
return sb.toString();
}
```
该方法的时间复杂度为 O(nk),其中 n 是字符串数组的长度,k 是最长字符串的长度。
阅读全文