leetcode中如何解决找不同问题

发布时间:2022-01-17 13:36:33 作者:小新
来源:亿速云 阅读:110

这篇文章主要介绍了leetcode中如何解决找不同问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

 

题目链接

https://leetcode-cn.com/problems/find-the-difference/

 

题目描述

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

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

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

示例:

输入:
s = "abcd"
t = "abcde"

输出:
e

解释:
'e' 是那个被添加的字母。
   

解题方案

 

思路

 

代码

class Solution {
   public char findTheDifference(String s, String t) {
       char ans = t.charAt(t.length()-1);
       for(int i = 0; i < s.length(); i++) {
           ans ^= s.charAt(i);
           ans ^= t.charAt(i);
       }
       return ans;
   }
}
 

JavaScript由于没有字符位运算所以无法使用异或运算解法。故而使用了第一种哈希表的解法

/**
* @param {string} s
* @param {string} t
* @return {character}
*/
var findTheDifference = function(s, t) {
   const map = new Map();
   for(let i = 0; i < s.length; i++) {
       const val = map.get(s[i]);
       map.set(s[i], val === undefined ? 1 : val + 1);
   }
   for(let i = 0; i < t.length; i++) {
       const val = map.get(t[i]);
       if(val === 0 || val === undefined) {
           return t[i];
       } else {
           map.set(t[i], val - 1);
       }
   }
};
   

画解

leetcode中如何解决找不同问题

leetcode中如何解决找不同问题

感谢你能够认真阅读完这篇文章,希望小编分享的“leetcode中如何解决找不同问题”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

推荐阅读:
  1. leetcode中如何解决ZigZag Conversion问题
  2. leetcode怎么解决种花问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

leetcode

上一篇:如何解决leetcode中三数之和的问题

下一篇:原生js怎么实现下拉刷新和上拉加载更多

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》