题目描述:
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.
读题:
1.只增加了一个字符,且字符串只包含小写字母
2.字符串会被打乱,因此不能用简单的比较
3.字符串可能重复出现,因此不能直接用索引
解题思路:
1.用数组按字母的字典序统计各个字母出现的次数
2.比较数组,找出出现次数不一样的那个项
3.该项对应的字母就是结果
提交代码:JAVA
public class Solution {
public char findTheDifference(String s, String t) {
char re = 0;
int[] is= new int[26];
int[] it= new int[26];
for (int i = 0; i < s.length(); i++) {
is[s.charAt(i)-'a']++;
}
for (int i = 0; i < t.length(); i++) {
it[t.charAt(i)-'a']++;
}
for (int i = 0; i < 26; i++) {
if (is[i] != it[i]) {
re = (char)(i+'a');
break;
}
}
return re;
}
}