389 Find the Difference找到一个字符串t中出现但是s中没有出现的字符

来源:互联网 发布:淘宝怎么卖百度云资源 编辑:程序博客网 时间:2024/06/06 03:56

[题目]
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.

//我采用的方法:遍历,空间复杂度低,时间复杂度高char findTheDifference(string s, string t) {    char result;    int i=0,j=0;    if(s.length()==t.length()) return 0;    for(i=0;i<t.length();i++)    {        result=t.at(i);        for(j=0;j<s.length();j++)        {            if(result==s.at(j))             {                    s.at(j)=0;                    break;            }        }        if(j==s.length())   return  result;    }}
//另外的方法,用一个26位的数目表示map结构,记录对应字符串的字符和出现的次数char findTheDifference(string s,string t){int hash[26]={0};for(int i=0;i<s.length();i++){hash[s[i]-'a']++;}for(int j=0;j<t.length();j++){hash[t[j]-'a']--;if(hash[t[j]-'a']<0) return t[j];}return 0;}
阅读全文
0 0