389. 找不同(位运算)

389.找不同:位运算 LeetCode 389.找不同美好 (Easy) 自己想出了方法一,方法二和方法三借鉴了力扣的官方题解。 方法一:排序后找不同 因为两个字符串中只多出了一个字符,其余字符全都相同,且多出一个字符的字符串为前一个字符串的随机排序,因而可以将两个字符串都进行排序,调整到同样的顺序后进行逐一比较。 class Solution { public char findTheDifference(String s, String t) { // 转化为char[]是为了调用Arrays方法类中的排序 阅读详情
package com.heu.wsq;

/**
 * 389. 找不同
 * @author wsq
 * @date 2020/12/18
 * 给定两个字符串 s 和 t,它们只包含小写字母。
 * 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
 * 请找出在 t 中被添加的字母。
 *
 * 示例 1:
 * 输入:s = "abcd", t = "abcde"
 * 输出:"e"
 * 解释:'e' 是那个被添加的字母。
 *
 * 链接:https://leetcode-cn.com/problems/find-the-difference
 */
public class FindTheDifference {
    /**
     * 使用异或来做位运算(异或表示对应位置不同即为1)
     * 字符串s+t中,与s相同的字符必然是双数,双数做"异或"操作必然必会抵消从而变成0
     * 而新增的元素为单数,即最后的结果就是新增的元素。
     * @param s
     * @param t
     * @return
     */
    public char findTheDifference(String s, String t){
        int ans = 0;
        for (char c : s.toCharArray()) {
            ans ^= c;
        }
        for (char c : t.toCharArray()) {
            ans ^= c;
        }
        return (char) ans;
    }

    public static void main(String[] args) {
        String s = "abcd";
        String t = "abcde";
        FindTheDifference ff = new FindTheDifference();
        char ans = ff.findTheDifference(s, t);
        System.out.println(ans);
    }
}

别再瞎改注册表了!实测Win10/Win11远程桌面60帧的正确姿势(附ToDesk对比) 本文深入解析Windows远程桌面60帧优化的科学方法,揭示常见误区并提供实测有效的解决方案。从版本差异到硬件加速,再到第三方工具对比(如ToDesk),帮助用户避开无效的注册表修改,实现流畅的远程桌面体验。 阅读详情

相关推荐

Linux服务器 离线安装oracle

Linux服务器 离线安装oracle

xie_bro的博客 4260

力扣 389. 找不同 C++(异或)

给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 输入:s = "abcd", t = "abcde" 输出:"e" 解释:'e' 是那个被添加的字母。 示例 2: 输入:s = "", t = "y" 输出:"y" 示例 3: 输入:s = "a", t = "aa" 输出:"a" 示例 4: 输入:s = "ae", t = "aea" 输出:"a" 提示: 0 <= s.leng

ganlanA的博客 308

关于自制的《航空学报》latex模板(非官网模板)

《航空学报》的官网只提供了word模板,并且该期刊投稿只需要pdf版本不需要源文件。为方便latex爱好者撰写论文,提供该模板及说明给广大科研人士~

qq_37105055的博客 4695

389. 找不同 ( 位运算 )

LeetCode: 389. 找不同 位运算 哈希表 AC Code class Solution { public char findTheDifference(String s, String t) { char[] cs = s.toCharArray(), ct = t.toCharArray(); if(cs.length == 0) return ct[0]; int ans = cs[0] ^ ct[0]; for(

lankerens 258

Redis架构演进:从主从、哨兵到集群,如何支撑亿级流量的秒杀场景?

本文深入探讨了分布式缓存Redis的三种核心高可用模式:主从复制、哨兵模式与集群模式。以高并发的电商秒杀业务为切入点,我们分析了每种模式的优缺点和适用场景,并最终选择Redis集群模式作为最佳解决方案。文章提供了基于Spring Boot和Spring Data Redis的完整实现代码,详细展示了如何配置和使用Redis集群来应对高并发、高可用的挑战,旨在帮助开发者在实际项目中做出正确的技术选型和架构设计。

lingRJ777的博客 723

用友BIP培训资料-设计采购订单新增API接口开发

14.在子实体的String pkMeas = order_hhrSlave0VOJson.getString("pk_meas");Openapi路径:nccloud/api/pu/order_hhrmanage/order_hhrMaster/addAggOrder_hhrMasterVO。实现接口的开发部署,通过openAPI的test类,实现一条数据的插入。16.进入自己的Idea打开老师发的TestOpenApi并且编译完成后如下。12.编写检测是否字段中是否含有中文的方法。

m0_68497879的博客 1546

力扣389-找不同(Java详细题解,位运算100%)

力扣389-找不同 一、原题题目 1.1 题目   给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。 1.2 示例 示例一 输入: s = “abcd”, t = “abcde” 输出: “e” 解释: ‘e’ 是那个被添加的字母。 示例二 输入: s = “”, t = “y” 输出: “y” 示例三 输入: s = “a”, t = “aa” 输出: “a” 示例四 输入: s = “ae”,

ItDaChuang的博客 1218

Python学习(一)

快速入门 1.Linux系统中是可以直接使用Python进行编程,具体如下: 进入Python:在linux的Terminal中输入 Python ,进入Python的命令行; 退出Python:在linux的Terminal中输入quit() 或 exit() 或 ctrl +d ,再回车,退出Python的命令行。 2.python的源程序就是一个特殊格式的文本文件,可以使用任意文本编辑软件做Python的开发。 3.Python程序的文件扩展名通常都是 .py。 4.执行Python程序的方式:在

SummerXRT的博客 1281

力扣389题解析:哈希表与位运算找不同字符

字符串处理是算法中的基础操作,其中字符统计与差异检测是常见需求。哈希表通过键值映射实现O(1)时间复杂度的字符计数,是处理字符频率问题的标准方法。位运算中的异或操作因其a^a=0的特性,成为检测单字符差异的高效技巧。这两种方法在数据校验、版本对比等实际工程场景中有广泛应用。以力扣389题为例,哈希表解法直观展示数据结构应用,而位运算方案则体现了算法优化思路。掌握这些基础技术对提升编码面试表现和解决实际问题都很有帮助。

weixin_33834075的博客 624

FreeRTOS深入教程(任务创建的深入和任务调度机制分析)

本篇文章将带大家深入学习任务的创建和分析任务调度的机制。本篇文章深入的讲解了任务创建的内部实现和任务调度的源代码分析和实现,学习这篇文章有助于更深入的学习FreeRTOS的源码。

m0_49476241的博客 6391

【树莓派安装Homeassistant及基本配置】

时隔一年,我又重新开始玩Homeassistant,发现其中奥妙无穷,惊喜不断。在我浅薄的认知中要学好嵌入式,必须玩过Homeassistant,并且玩出自己的名堂!因为这是最贴切实际的生活应用没有之一,每月更新使得唯有活水来;拥抱大千使得永葆青春的活力;鬼斧神工的操作精彩纷呈,可以堪称软件与硬件的完美落地!

vor234的博客 1万+

【Leetcode 389 】 找不同 —— 位运算

给定两个字符串s和t,它们只包含小写字母。字符串t由字符串s随机重排,然后在随机位置添加一个字母。请找出在t中被添加的字母。"e"'e' 是那个被添加的字母。"y"

Caoshuang_的博客 323

解决com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60027, active 20, maxActive 20错误

全网详细解决com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60027, active 20, maxActive 20, creating 0, createErrorCount 24的错误

念兮为美 417

389找不同---位运算

题目:给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 输入:s = "abcd", t = "abcde" 输出:"e" 解释:'e' 是那个被添加的字母。 示例 2: 输入:s = "", t = "y" 输出:"y" 示例 3: 输入:s = "a", t = "aa" 输出:"a" 示例 4: 输入:s = "ae", t = "aea" 输出:"a" 提示: 0 &lt..

ARTELE的博客 407

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

LeetCode 389. 找不同(位运算)

1. 题目 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 2. 解题 2.1 土办法,哈希map class Solution { public: char findTheDifference(string s, string t) { unordered_map<...

Michael是个半路程序员 1078

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【map、位运算】leetcode-389.找不同

389.找不同 难度:简单 题目描述:给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 输入:s = "abcd", t = "abcde" 输出:"e" 解释:'e' 是那个被添加的字母。 示例 2: 输入:s = "", t = "y" 输出:"y" 示例 3: 输入:s = "a", t = "aa" 输出:"a" 示例 4: 输入:s = "ae", t = "aea" 输出:"a"

tuibianhuaisheng的博客 214

【leetcode】389找不同 | 求和 | 位运算

题目 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 输入:s = “abcd”, t = “abcde” 输出:“e” 解释:‘e’ 是那个被添加的字母。 示例 2: 输入:s = “”, t = “y” 输出:“y” 示例 3: 输入:s = “a”, t = “aa” 输出:“a” 示例 4: 输入:s = “ae”, t = “aea” 输出:“a” 提示: 0 &lt.

苏幕遮的碧云天黄叶地秋色连波波上寒烟翠 168

LeetCode每日一题--389. 找不同(计数,位运算)

题目:跳转至 389. 找不同 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 输入:s = “abcd”, t = “abcde” 输出:“e” 解释:‘e’ 是那个被添加的字母。 示例 2: 输入:s = “”, t = “y” 输出:“y” 示例 3: 输入:s = “a”, t = “aa” 输出:“a” 示例 4: 输入:s = “ae”, t = “aea” 输出:“a” 提示: 0

qq_39295095的博客 286

位运算简单 LeetCode389. 找不同

389. 找不同 描述 给定两个字符串 s 和 t ,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 分析 利用异或抵消相同的字符 class Solution { public char findTheDifference(String s, String t) { char ans = 0; for(int i = 0; i < s.length(); i++){

31楼下小黑的博客 269

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

解题思路: 位运算中的异或运算有以下特点: 0 ^ 0 = 0 1 ^ 1 = 0 0 ^ 1 = 1 a ^ b ^ a = (a ^ a) ^ b = 0 ^ b = b 字符串s和t中,只有一个字母是不同的,而其他相同的字符,都可以通过ASCII码的异或运算相互抵消,剩下的就是被添加字母的ASCII码。 /** * @param {string} s * @param {string} t * @return {character} */ var findTheDifferen

Lee Chen的博客 186

389找不同(哈希表、位运算、数学)

1、题目描述 给定两个字符串 s 和 t,它们只包含小写字母。 字符串t由字符串s随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 提示: 0 <= s.length <= 1000 t.length == s.length + 1 s 和 t 只包含小写字母 2、示例 输入:s = "abcd", t = "abcde" 输出:"e" 解释:'e' 是那个被添加的字母。 3、题解 解法一: 基本思想:哈希表HashMap 解法二: 基本思...

Revendell的博客 157

leetCode每日一题:389. 找不同(位运算)

一、题目描述 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 输入:s = “abcd”, t = “abcde” 输出:“e” 解释:‘e’ 是那个被添加的字母。 示例 2: 输入:s = “”, t = “y” 输出:“y” 示例 3: 输入:s = “a”, t = “aa” 输出:“a” 示例 4: 输入:s = “ae”, t = “aea” 输出:“a” 二、题解 方法一:计数 我

qq_38748148的博客 312

LeetCode389.找不同(Java位运算+求和+计数)

给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 输入:s = “abcd”, t = “abcde” 输出:“e” 解释:‘e’ 是那个被添加的字母。 方法一:位运算 我们知道 若b=0,a^b =a ,a ^a =0,所以如果是多余的字符,则结果不会为0 ...

Fiona20的博客 168

java 位运算 求和_LeetCode389.找不同(Java位运算+求和+计数)

题目给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例 1:输入:s = “abcd”, t = “abcde”输出:“e”解释:‘e’ 是那个被添加的字母。方法一:位运算我们知道a^0=a; a ^a =0;所以如果是多余的字符,则结果不会为0,因为是在s的基础上进行新增一个字符,所以除开新增的字符,...

weixin_39989215的博客 219

力扣-389题 找不同(C++)- 位运算

题目链接:https://leetcode-cn.com/problems/find-the-difference/ 题目如下: class Solution { public: char findTheDifference(string s, string t) { int temp=0; //在异或运算中,所有偶数次出现的数字都可以抵消,只留下奇数次出现的数 for(auto e:s) temp^=e; for(auto e:t

qq_40467670的博客 342

力扣389. 找不同重写----三种方法(哈希,ascii码值,位运算)

389. 找不同 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 输入:s = "abcd", t = "abcde" 输出:"e" 解释:'e' 是那个被添加的字母。 示例 2: 输入:s = "", t = "y" 输出:"y" 示例 3: 输入:s = "a", t = "aa" 输出:"a" 示例 4: 输入:s = "ae", t = "aea" 输出:"a" 提示: 0 &

xiangguang_fight的博客 343
上一篇: 738. 单调递增的数字
下一篇: 48. 旋转图像
Lazy mode
博客等级 码龄10年 13粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值