Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务

Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务,点击查看活动详情

一、题目描述

  • 给定两个字符串 s 和 t ,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。
  • 示例 1:
输入: s = "abcd", t = "abcde"
输出: "e"
解释: 'e' 是那个被添加的字母。
复制代码
  • 示例 2:
输入: s = "", t = "y"
输出: "y"
复制代码

二、思路分析:

  • 找出不同的字符,即去除相同的字符,剩下的就是不同字符
  • 首先把给定的两个字符串转化为数组操作
  • 遍历数组,当数组值相等的时候删除后面的数组项
  • 最后剩余的项就是当初添加的字符,返回

三、AC 代码:

function findTheDifference(s: string, t: string): string {
    if(s.length === 0) return t;
    let sArr = s.split('');
    let tArr = t.split('');
    for(let i = 0; i < sArr.length; i++){
        for(let j =0 ; j < tArr.length; j++){
            if(sArr[i] === tArr[j]){
                tArr.splice(j, 1);
                break;
            }
        }
    }
    return tArr[0]
};
复制代码

四、总结:

  • 这题其实还挺简单的,上面只写了一种解法,还有其他的方法,比如计数,然后比较。但是最先想到的还是上面这一种,也没有很麻烦。想看看其他思路可以去题目的题解和评论区看看其他大佬的解法,嘻嘻嘻

image.png

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享