Create 389. Find the Difference.md

This commit is contained in:
唐树森 2018-09-15 23:01:38 +08:00 committed by GitHub
parent 9cfe6593bf
commit 6a4947d83d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -0,0 +1,22 @@
# [389. Find the Difference](https://leetcode.com/problems/find-the-difference/description/)
# 思路
分别记录两个字符串中每个字符的出现次数最后比较一下字符的出现次数次数差1对应的字符即所求。
因为全是小写字母所以开辟一个大小为26的数组进行计数即可。另外没必要开辟两个计数数组用一个数组记录即可对s中出现的字符进行次数累加对t中出现的字符进行次数累减。
最后次数为-1的对应的字母即所求。
时间复杂度O(n) 空间复杂度O(1)
# C++
```
class Solution {
public:
char findTheDifference(string s, string t) {
vector<int>count(26, 0);
for(int i = 0; i < s.size(); i++){
count[s[i] - 'a']++;
count[t[i] - 'a']--;
}
count[t[t.size() - 1] - 'a']--;
for(int i = 0; i < 26; i++)
if(count[i] == -1) return char(i + 'a');
}
};
```