2017年12月16日 星期六

[LeetCode] 389. Find the Difference

轉自LeetCode

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.
<Solution>

跟 268. Missing Number 概念一樣,可以使用 XOR來找

不同的是,一個是要找少哪一個,這一次要找多哪一個

code 如下

C++
class Solution {
public:
char findTheDifference(string s, string t) {
const int len = s.length();
char c = t.back();
for(int i = 0; i < len; i++) {
c ^= s[i];
c ^= t[i];
}
return c;
}
};

kotlin
class Solution {
fun findTheDifference(s: String, t: String): Char {
var ans = t.last().toInt()
for(i in s.indices) {
ans = ans xor s[i].toInt()
ans = ans xor t[i].toInt()
}
return ans.toChar()
}
}

沒有留言:

張貼留言