In this Leetcode Find the Difference problem solution, You are given two strings s and t. String t is generated by random shuffling string s and then add one more letter at a random position. Return the letter that was added to t.

leetcode find the difference problem solution


Problem solution in Python.

ans = 0
for c in t:
    ans =ans+ ord(c)

for c in s:
    ans =ans- ord(c)           
return chr(ans)



Problem solution in Java.

public char findTheDifference(String s, String t) {
        int sumS = 0, sumT = 0;
        char ch;

        for (int i = 0; i <s.length(); i++) {
            sumS += Integer.valueOf(s.charAt(i));
        }

        for (int j = 0; j < t.length(); j++) {
            sumT += Integer.valueOf(t.charAt(j));
        }


        ch = (char) (sumT - sumS);
        return ch;
    }


Problem solution in C++.

char findTheDifference(string s, string t) {
        int a[26];
        memset(a,0,sizeof(a));
        int i;
        for(i=0;i<t.length();i++){
            a[t[i]-'a']++;
        }
        for(i=0;i<s.length();i++){
            a[s[i]-'a']--;
        }
        for(i=0;i<26;i++){
            if(a[i]>0)
                return char(i+'a');
        }
        return 'a';
    }


Problem solution in C.

char findTheDifference(char * s, char * t){
    
    int i;
    int len_s = strlen(s) - 1;
    int len_t = strlen(t) - 1;
    int alpha_s[26] = {0};
    int alpha_t[26] = {0};    
    
    for(i = 0; i <= len_t; i++){
        
        alpha_t[t[i] - 97]++;
    }
    
    for(i = 0; i <= len_s; i++){
        
        alpha_s[s[i] - 97]++;
    }
    
    for(i = 0; i < 26; i++){
        
        if(alpha_s[i] != alpha_t[i]){
            
            return 'a' + i;            
        }
    }

    return NULL;
 
}