写点什么

LeetCode 题解:389. 找不同,位运算,JavaScript,详细注释

用户头像
Lee Chen
关注
发布于: 2021 年 01 月 27 日
LeetCode题解:389. 找不同,位运算,JavaScript,详细注释

原题链接:https://leetcode-cn.com/problems/find-the-difference/


解题思路:


  1. 位运算中的异或运算有以下特点:


* 0 ^ 0 = 0

* 1 ^ 1 = 0

* 0 ^ 1 = 1

* a ^ b ^ a = (a ^ a) ^ b = 0 ^ b = b


  1. 字符串 s 和 t 中,只有一个字母是不同的,而其他相同的字符,都可以通过 ASCII 码的异或运算相互抵消,剩下的就是被添加字母的 ASCII 码。


/** * @param {string} s * @param {string} t * @return {character} */var findTheDifference = function (s, t) {  let code = 0; // 保存ASCII码的值  const str = s + t; // 将s和t组成一个新字符串
// 将字符串中的所有字符转成ASCII码进行异或运算,相同的字符会被抵消 // 最后剩下的就是多余字符的ASCII码 for (let i = 0; i < str.length; i++) { code ^= str.charCodeAt(i); }
// 将ASCII码转换成字符串返回 return String.fromCharCode(code);};
复制代码


发布于: 2021 年 01 月 27 日阅读数: 14
用户头像

Lee Chen

关注

还未添加个人签名 2018.08.29 加入

还未添加个人简介

评论

发布
暂无评论
LeetCode题解:389. 找不同,位运算,JavaScript,详细注释