🌗 389. 找不同
2022年10月10日
- algorithm
🌗 389. 找不同
难度: 🌗
问题描述
解法 1 - 借助 map
class Solution {
public char findTheDifference(String s, String t) {
// 思路:
// 借助 arr
int[] arr = new int[26];
int len = s.length();
for(int i = 0; i < len; i ++) {
char c = s.charAt(i);
int index = c - 'a';
arr[index] ++;
}
len ++;
for(int i = 0; i < len; i ++) {
char c = t.charAt(i);
int index = c - 'a';
if(arr[index] == 0) {
return c;
}
arr[index] --;
}
return ' ';
}
}
输出 1
解法 2 - 位运算
class Solution {
public char findTheDifference(String s, String t) {
// 思路:
// 将 2 个字符串所有字符合在一起,也就是找 只出现一次的字符,其余字符全部出现了 2 次
// 位运算
int res = 0;
for(int i = 0; i < s.length(); i ++) {
res ^= s.charAt(i);
}
for(int i = 0; i < t.length(); i ++) {
res ^= t.charAt(i);
}
return (char)res;
}
}