Given two strings s and t which consist of only lowercase letters.
String t is generated by random shuffling string s and then add one more letter at a random position.
Find the letter that was added in t.
Example:
Input:
s = “abcd”
t = “abcde”
Output:
e
Explanation:
‘e’ is the letter that was added.
Subscribe to see which companies asked this question
解题思路:就是用个hashmap存储字母分布,然后找出不一样的。这里直接用Java的hashmap,因为题目限定是小写字母,其实可以使用26位的数组即可。
public class Solution {
public char findTheDifference(String s, String t) {
int slen = s.length();
int tlen = t.length();
Map<Character, Integer> map = new HashMap<Character, Integer>();
for(int i = 0; i < slen; i++)
{
if(map.containsKey(s.charAt(i)))
{
int value = map.get(s.charAt(i));
value++;
map.put(s.charAt(i), value);
}else{
map.put(s.charAt(i), 1);
}
}
char res='\0';
for(int i = 0; i < tlen; i++)
{
if(map.containsKey(t.charAt(i)))
{
int value = map.get(t.charAt(i));
value--;
if(value < 0)
{
res = t.charAt(i);
break;
}
map.put(t.charAt(i), value);
}else{
res = t.charAt(i);
break;
}
}
return res;
}
}