寻找添加的字母:字符串比较算法及Java代码实现
思路:\n1. 遍历字符串s,统计每个字母出现的次数,将字符与出现次数存储在一个HashMap中。\n2. 遍历字符串t,对于每个字母,如果在HashMap中存在,则将其对应的值减1;如果不存在,则说明这个字母是添加的字母。\n3. 遍历HashMap,找到值为1的字母,即为添加的字母。\n\n代码如下:\n\njava\nimport java.util.HashMap;\n\npublic class Solution {\n public char findTheDifference(String s, String t) {\n HashMap<Character, Integer> map = new HashMap<>();\n for (char c : s.toCharArray()) {\n map.put(c, map.getOrDefault(c, 0) + 1);\n }\n for (char c : t.toCharArray()) {\n if (map.containsKey(c)) {\n map.put(c, map.get(c) - 1);\n } else {\n return c;\n }\n }\n for (char c : map.keySet()) {\n if (map.get(c) == 1) {\n return c;\n }\n }\n return ' ';//添加的字母可能不存在, 返回空格\n }\n}\n\n\n时间复杂度分析:\n遍历字符串s需要O(n)的时间,遍历字符串t需要O(n)的时间,遍历HashMap需要O(n)的时间。所以总的时间复杂度为O(n)。其中n为字符串的长度。
原文地址: https://www.cveoy.top/t/topic/p7oE 著作权归作者所有。请勿转载和采集!