LeetCode389
题目
给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例:
输入:
s = “abcd”
t = “abcde”
输出:
e
解释:
‘e’ 是那个被添加的字母。
代码
这道题和上一道题好像…
用了同一种方法,额外数组进行遍历,特定位置++就很轻易地解决了(
顺带一提ASCII码转字符原来只要(char)int就好了…
class Solution {
public char findTheDifference(String s, String t) {
int[] a = new int[26];
//存储s的字母
int[] b = new int[26];
//存储t的字母 (随机重排后添加了一个额外的字母
for (int i = 0; i < s.length(); i++){
a[s.charAt(i) - 'a']++;
}
for(int i = 0; i < t.length(); i++){
b[t.charAt(i) - 'a']++;
}
for(int i = 0; i < 26; i++){
if(a[i] != b[i]){
return (char)('a' + i);
}
}
throw new IndexOutOfBoundsException("出错了= =");
}
}