LeetCode——Find the Difference
生活随笔
收集整理的這篇文章主要介紹了
LeetCode——Find the Difference
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
LeetCode——Find the Difference
Question
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
用hash table求解,時(shí)間復(fù)雜度為O(2n)
用異或求解,這道題和single number?的問(wèn)題是一個(gè)意思,兩個(gè)字符串中,找出那個(gè)單個(gè)的字符。時(shí)間復(fù)雜度為O(n)。
Answer
class Solution { public:char findTheDifference(string s, string t) {map<char, int> dict;for (char c : s)dict[c]++;map<char, int> dict2;for (char c : t) {dict2[c]++;if (dict2[c] > dict[c])return c;}} };用異或求解。
class Solution { public:char findTheDifference(string s, string t) {char r=0;for(char c:s) r ^=c;for(char c:t) r ^=c;return r;} };轉(zhuǎn)載于:https://www.cnblogs.com/zhonghuasong/p/6658700.html
總結(jié)
以上是生活随笔為你收集整理的LeetCode——Find the Difference的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 史上最快的拼接字串方法
- 下一篇: Tornado之自定义session