要找出字符串中的重复字符,可以使用多种编程语言实现。以下是几种常见语言的示例:
def find_duplicates(s):
from collections import Counter
counter = Counter(s)
duplicates = [char for char, count in counter.items() if count > 1]
return duplicates
# 示例
s = "programming"
duplicates = find_duplicates(s)
print("重复的字符有:", duplicates)
输出:
重复的字符有: ['r', 'g', 'm']
import java.util.HashSet;
import java.util.Set;
public class DuplicateCharacters {
public static Set<Character> findDuplicates(String s) {
Set<Character> seen = new HashSet<>();
Set<Character> duplicates = new HashSet<>();
for (char c : s.toCharArray()) {
if (!seen.add(c)) {
duplicates.add(c);
}
}
return duplicates;
}
public static void main(String[] args) {
String s = "programming";
Set<Character> duplicates = findDuplicates(s);
System.out.println("重复的字符有: " + duplicates);
}
}
输出:
重复的字符有: [r, g, m]
function findDuplicates(str) {
const charCount = {};
const duplicates = new Set();
for (const char of str) {
charCount[char] = (charCount[char] || 0) + 1;
if (charCount[char] > 1) {
duplicates.add(char);
}
}
return Array.from(duplicates);
}
// 示例
const s = "programming";
const duplicates = findDuplicates(s);
console.log("重复的字符有:", duplicates);
输出:
重复的字符有: [ 'r', 'g', 'm' ]
collections.Counter
来统计每个字符出现的次数,然后筛选出出现次数大于1的字符。HashSet
,一个用于记录已经见过的字符,另一个用于存储重复的字符。遍历字符串时,如果字符已经在 seen
集合中,则将其添加到 duplicates
集合中。charCount
来记录每个字符的出现次数,并使用 Set
来存储重复的字符。遍历字符串时,更新计数并检查是否需要添加到 duplicates
中。这些方法都能有效地找出字符串中的重复字符。你可以根据需要选择适合的编程语言和方法来实现。
领取专属 10元无门槛券
手把手带您无忧上云