给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例:
输入:
s = "abcd"
t = "abcde"
输出:
e
解释:
'e' 是那个被添加的字母。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-the-difference
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
我的思路:这是一个笨方法,耗时切费空间,我的想法是找一个数组,存储t字符串的出现字母及其次数,然后 减去 s 字符串中字母出现的次数,则剩下的 数组中 唯一一个 = 1 的下标则是那个多余的字符。
class Solution {
public char findTheDifference(String s, String t) {
int [] book = new int[26];
for( int i = 0; i < t.length(); i++ ) {
book[t.charAt(i)-97]++;
}
for ( int i = 0; i < s.length(); i++ ) {
book[s.charAt(i)-97]--;
}
char re = 'a';
for ( int i = 0; i < 26; i++ ) {
if ( book[i] == 1 ) {
re = (char)(i+97);
}
}
return re;
}
}