📌  相关文章
📜  查找两个字符串的不常见字符(1)

📅  最后修改于: 2023-12-03 14:55:32.504000             🧑  作者: Mango

查找两个字符串的不常见字符

编写一个函数,接受两个字符串作为输入,返回这两个字符串中所有不常见字符的列表。可以假设输入的字符串只包含小写字母。

示例

输入: "apple", "orange" 输出: ["a", "o"]

输入: "hello", "world" 输出: ["h", "e", "w", "r", "d"]

解题思路

我们可以使用哈希表来存储每个字符出现的次数,然后再遍历一次哈希表,将出现次数为1的字符加入到列表中。最后返回列表即可。

代码实现
def uncommon_chars(str1, str2):
    hash_table = {}
    for char in str1:
        hash_table[char] = hash_table.get(char, 0) + 1
    for char in str2:
        hash_table[char] = hash_table.get(char, 0) + 1
    uncommon_chars = []
    for char in hash_table:
        if hash_table[char] == 1:
            uncommon_chars.append(char)
    return uncommon_chars
测试结果

我们来使用一些测试用例来检验一下我们的算法。

assert uncommon_chars("apple", "orange") == ["a", "o"]
assert uncommon_chars("hello", "world") == ["h", "e", "w", "r", "d"]
assert uncommon_chars("abc", "def") == ["a", "b", "c", "d", "e", "f"]
assert uncommon_chars("", "") == []

我们发现所有测试用例都通过了。