LeetCode //C - 389. Find the Difference
389. Find the Difference
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.
Example 1:
Input: s = “abcd”, t = “abcde”
Output: “e”
Explanation: ‘e’ is the letter that was added.
Example 2:
Input: s = “”, t = “y”
Output: “y”
Constraints:
- 0 <= s.length <= 1000
- t.length == s.length + 1
- s and t consist of lowercase English letters.
From: LeetCode
Link: 389. Find the Difference
Solution:
Ideas:
- The function findTheDifference works by calculating the sum of the ASCII values of characters in both strings s and t.
- Since t contains all characters from s plus one extra character, the difference between the two sums gives the extra character.
Code:
char findTheDifference(char* s, char* t) {int char_sum_s = 0, char_sum_t = 0;// Sum the ASCII values of all characters in string swhile (*s) {char_sum_s += *s;s++;}// Sum the ASCII values of all characters in string twhile (*t) {char_sum_t += *t;t++;}// The difference in the sums will give the added characterreturn char_sum_t - char_sum_s;
}