389. 找不同
给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例:
输入: s = "abcd" t = "abcde" 输出: e 解释: 'e' 是那个被添加的字母。
在真实的面试中遇到过这道题?
package finddifference; import java.util.HashMap; import java.util.Map; public class find { public static char find(String s,String t){ Map<Character,Integer> maps=new HashMap<Character,Integer>(); Map<Character,Integer> mapt=new HashMap<Character,Integer>(); for(int i=0;i<s.length();i++){ if(maps.containsKey(s.charAt(i))){ maps.put(s.charAt(i), maps.get(s.charAt(i))+1); }else{ maps.put(s.charAt(i), 1); } } for(int j=0;j<t.length();j++){ if(mapt.containsKey(t.charAt(j))){ mapt.put(t.charAt(j), mapt.get(t.charAt(j))+1); }else{ mapt.put(t.charAt(j),1); } } for(Character key:mapt.keySet()) { // System.out.println("Key: "+key+" Value: "+map.get(key)); if(!maps.containsKey(key)){ return key; } if(maps.containsKey(key)&&mapt.get(key)>maps.get(key)) { return key; } } return '0'; } public static void main(String[] args) { // TODO Auto-generated method stub String s="abcd"; String t="abcde"; System.out.println(find(s,t)); String s1="abcd"; String t1="abcdb"; System.out.println(find(s1,t1)); } }

浙公网安备 33010602011771号