LeetCode: 389. Find the Difference
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.
自己的答案,时间85ms
public class Solution {
public char findTheDifference(String s, String t) {
String result = t;
for (int i = 0; i < s.length(); i++) {
result = result.replaceFirst(s.substring(i, i+1), "");
}
return result.charAt(0);
}
}
最快的答案,时间5ms:
public class Solution {
public char findTheDifference(String s, String t) {
char i = 0;
for (char c : s.toCharArray()) {
i ^= c;
}
for (char c : t.toCharArray()) {
i ^= c;
}
return i;
}
}
本文介绍了解决LeetCode 389题“找出字母异位词”的两种方法。一种是通过逐个移除匹配字符的方法找到额外的字母,时间复杂度较高;另一种则是利用异或操作实现高效查找,仅需遍历两次字符串即可解决问题。

93

被折叠的 条评论
为什么被折叠?



