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++
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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() | |
} | |
} |
沒有留言:
張貼留言