【力扣】389.找不同|每日一题|刷题打卡

62 阅读1分钟

一、题目描述

给定两个字符串 s 和 t ,它们只包含小写字母。

字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。

请找出在 t 中被添加的字母。

 

示例 1:

输入: s = "abcd", t = "abcde"
输出: "e"
解释: 'e' 是那个被添加的字母。

示例 2:

输入: s = "", t = "y"
输出: "y"

 

提示:

  • 0 <= s.length <= 1000
  • t.length == s.length + 1
  • s 和 t 只包含小写字母

二、思路分析

  1. 定义一个对象,存储s中每个字符出现的次数
  2. 遍历t,判断是否在mp中存在,以及次数是否小于0,如果满足条件,则返回不同的字符

三、代码答案

/**
 * @param {string} s
 * @param {string} t
 * @return {character}
 */
var findTheDifference = function (s, t) {
  const mp = {}
  for (let i = 0; i < s.length; i++) { 
    mp[s[i]] = (mp[s[i]] || 0) + 1;
  }
  for (let i = 0; i < t.length; i++) { 
    if (!mp[t[i]] || mp[t[i]] <= 0) { 
      return t[i];
    }
    mp[t[i]]--;
  }
};