给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
提示:
0 <= s.length <= 1000t.length == s.length + 1s 和 t 只包含小写字母
解法一
class Solution {
public char findTheDifference(String s
, String t
) {
char[] sCh
= s
.toCharArray();
char[] tCh
= t
.toCharArray();
Arrays
.sort(sCh
);
Arrays
.sort(tCh
);
for (int i
= 0; i
< sCh
.length
; i
++) {
if (sCh
[i
] != tCh
[i
]) return tCh
[i
];
}
return tCh
[tCh
.length
- 1];
}
}
解法二
class Solution {
public char findTheDifference(String s
, String t
) {
int[] arr
= new int[26];
for (char c
: s
.toCharArray()) {
arr
[c
- 97]++;
}
for (char c
: t
.toCharArray()) {
if (arr
[c
- 97] == 0) return c
;
else arr
[c
- 97]--;
}
return ' ';
}
}