📌  相关文章
📜  查找给定字符串中不存在于其他字符串中的所有字符(1)

📅  最后修改于: 2023-12-03 15:10:46.294000             🧑  作者: Mango

查找给定字符串中不存在于其他字符串中的所有字符

问题描述

给定一个字符串s和n个字符串t1, t2, ..., tn,求s中所有不在t1, t2, ..., tn中出现的字符。

解决方案
思路
  • 遍历字符串s中的每个字符,判断其是否在其他字符串中出现过。

  • 如果在其他字符串中出现过,则在一个HashSet中进行标记。

  • 最后,HashSet中没有标记的字符就是s中不存在于其他字符串中的字符。

代码实现
public static Set<Character> findUniqueChars(String s, String[] t) {
    Set<Character> set = new HashSet<>();
    // 遍历s中的每个字符
    for (int i = 0; i < s.length(); i++) {
        char c = s.charAt(i);
        // 判断该字符是否出现在其他字符串中
        boolean isExistingInOtherStrings = false;
        for (String str : t) {
            if (str.indexOf(c) != -1) {
                isExistingInOtherStrings = true;
                break;
            }
        }
        // 如果没有出现在其他字符串中,则将其加入HashSet
        if (!isExistingInOtherStrings) {
            set.add(c);
        }
    }
    return set;
}
代码说明
  • 参数说明

    • s:给定的字符串。

    • t:给定的字符串数组,含有n个字符串。

  • 返回值说明:返回一个HashSet,含有所有在s中,但不在t1, t2, ..., tn中出现的字符。

  • 代码解析

    • 使用HashSet来存储在s中出现,但不在t1, t2, ..., tn中出现的所有字符。

    • 遍历s中的每个字符。

    • 对于每个字符,判断其是否出现在其他字符串中。

    • 如果没有出现在其他字符串中,则将其加入HashSet。

    • 返回HashSet。

示例
public static void main(String[] args) {
    String s = "abcedf";
    String[] t = { "ced", "hgf" };
    Set<Character> set = findUniqueChars(s, t);
    System.out.println(set);  // [a, b, e, f]
}
总结

本节介绍了如何查找给定字符串中不存在于其他字符串中的所有字符,详细讲解了该问题的解决方案和Java代码实现。