• 389.找不同


    2020-05-06
    找不同

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

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

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

    题解:
    思路1:转为ASC2码后排序
    var findTheDifference = function (s, t) {
      s = s.split('').sort((a, b) => a.charCodeAt() - b.charCodeAt());
      t = t.split('').sort((a, b) => a.charCodeAt() - b.charCodeAt());
      // 排序后 第一个不相等的就是新加入的
      for (let i in s) {
        if (s[i] !== t[i]) return t[i];
      }
      return t[t.length - 1]; // 遍历一遍没找到 说明插入在最后一个
    }
    思路2:哈希表
    var findTheDifference = function (s, t) {
      let newMap = new Map(); // 新建一个Map存哈希
      for (let v of s) {
        if (newMap.has(v)) newMap.set(v, newMap.get(v) + 1); // 将S字符串中的每一项存入哈希表中
        else newMap.set(v, 1);
      }
      for (let v of t) {
        let val = newMap.get(v); // 再遍历T取每一项 有的话减掉1 
        if (val === 0 || val === undefined) return v; // 如果值为0  说明T比S多一个这个字符 如果为undefined 说明S中不存在这个字符
        else newMap.set(v, val - 1);
      }
    }
  • 相关阅读:
    IDEA常用快捷键
    IDEA的使用
    IDEA的常用设置
    IDEA的下载安装
    004-解决多线程安全问题
    002-多线程的创建
    Java中字符串与日期之间的转换
    select标签的字体居中问题
    IntelliJ IDEA常用快捷键
    div小技巧之子元素垂直居中
  • 原文地址:https://www.cnblogs.com/lanpang9661/p/12834343.html
Copyright © 2020-2023  润新知