Post

Leetcode 0389. 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"

Description

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"
  • ‘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.

Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution:
    # Iteration
    # Time Complexity: BigO(NlogN)
    # Space Complexity: BigO(N)
    def findTheDifference(self, s: str, t: str) -> str:
        ls = list(s)
        lt = list(t)

        ls.sort()
        lt.sort()

        for i in range(0, len(lt)):
            try:
                if ls[i] != lt[i]:
                    return lt[i]

            except IndexError:
                return lt[i]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
 * Iteration
 * Time Complexity: BigO(NlogN)
 * Space Complexity: BigO(N)
 */
function findTheDifference(s: string, t: string): string {
  let res = "";
  let ls: string[] = s.split("").sort();
  let lt: string[] = t.split("").sort();

  for (let i = 0; i < lt.length; i++) {
    if (ls[i] != lt[i]) {
      res = lt[i];
      break;
    }
  }

  return res;
}
This post is licensed under CC BY 4.0 by the author.