leetcode 389.找不同

【LeetCode】第389题——找不同(难度:简单) 【LeetCode】第389题——找不同(难度:简单)欢迎使用Markdown编辑器解题思路代码详解思路一:计数思路二:求和思路三:异或(推荐)注意点 欢迎使用Markdown编辑器 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 输入:s = “abcd”, t = “abcde” 输出:“e” 解释:‘e’ 是那个被添加的字母。 示例 2: 输入:s = “”, t = “y” 输出: 阅读详情

leetcode 389.找不同

题目描述

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

示例:
输入:
s = “abcd”
t = “abcde”

输出:
e
解释:
‘e’ 是那个被添加的字母。

解题思路

方法一: 创建两个哈希表,遍历t中的元素是否和s中表中对应元素的数量是否相等,或者s表中如果不存在,那么该元素就是要被添加的元素

class Solution {
public:
    char findTheDifference(string s, string t) {
        char res = ' ';
        unordered_map<char, int> sTable;
        unordered_map<char, int> tTable;
        // 统计s中的元素
        for(int i=0; i<s.size(); i++){
            sTable[s[i]] += 1;
        }
        // 统计t中的元素
        for(int i=0; i<t.size(); i++){
            tTable[t[i]] += 1;
        }
        // 由于t比s多一个元素,所以要用t遍历,防止漏掉元素
        for(auto tElem : tTable){
            if((sTable.find(tElem.first) == sTable.end()) || (sTable[tElem.first] != tElem.second)){
                res = tElem.first;
                break;
            }
        }

        return res;
    }
};

方法二: 异或运算,t是由s随机插入一个字符得到的,所以s和t的元素结合中,肯定有一个元素的数量是奇数,所以通过异或可以筛选出来

class Solution {
public:
    char findTheDifference(string s, string t) {
        char res = 0;
        int len = s.size();
        for(int i=0; i<len; i++){
            res ^= s[i]^t[i];
        }

        return res^t[len];
    }
};

方法三: 建立一个统计ascii码的数量的数组,遍历s,统计数量,遍历t的时候,对应元素数量减少1,当数量小于零的时候,就是不同的元素。

class Solution {
public:
    char findTheDifference(string s, string t) {
        char res = ' ';
        char ascii[256] = {0};
        for (auto i:s){
            ascii[i] += 1;
        }
        for(auto i:t){
            ascii[i] -= 1;
            if(ascii[i] < 0){
                res = i;
            }
        }
        return res;
    }
};

欢迎大家关注我的个人公众号,同样的也是和该博客账号一样,专注分享技术问题,我们一起学习进步
在这里插入图片描述

微信开放标签wx-open-launch-app样式失效?手把手教你正确设置点击区域(附完整代码) 本文详细解析了微信开放标签`wx-open-launch-app`样式失效和点击无响应的常见问题,提供了完整的解决方案和代码示例。通过分析标签内部实现机制,指导开发者正确设置点击区域和样式,确保跨平台兼容性和用户体验优化。 阅读详情

相关推荐

远程桌面连接失败?手把手教你解决CredSSP加密Oracle漏洞(Win10/Win11通用)

本文详细解析了Windows远程桌面连接因CredSSP加密Oracle漏洞安全更新导致的“身份验证错误”问题。文章从原理入手,提供了通过组策略编辑器(适用于专业版)和注册表编辑器(适用于家庭版)两种核心解决方案,指导用户将安全策略调整为推荐的“缓解”模式,以在保障安全的前提下恢复连接,并给出了高级脚本处理与安全最佳实践。

u6v7w8x的博客 728

LeetCode--389.找不同(C++描述)

// Source : https://leetcode-cn.com/problems/find-the-difference/ // Date : 2021-11-10 /************************************************************************************** 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 输

YGQ_qq_1435471912 942

ANSYS MAXWELL内置式永磁同步电机(IPMSM)转矩最大时输入电流相位的确定

1.在转子转速为零时看一个周期内的转矩变化

qq_41752507的博客 6517

leetcode389python 找不同

给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。 示例:输入: s = "abcd" t = "abcde" 输出: e 解释: 'e' 是那个被添加的字母。第一种方法class Solution(object): def findTheDifference(self, s, t): ...

IT_job的博客 1023

制作Ubuntu22.04启动盘

现在越来越多程序代码都需要运行在linux环境下,运行这些代码的前提是安装一个稳定的linux操作系统。本文选择Ubuntu 22.04去制作系统启动盘。本文主要对ubuntu22.04的启动盘制作过程进行了详细的说明,希望能帮助到有需要的朋友。

lyx_ok的博客 1万+

【Unity人物动画】SALSA With RandomEyes (语音生成嘴型/人物说话) 使用

SALSA使用探索 之前做项目时想做人物说话的嘴部动作,因为我们的语音是AI合成的,语音片段很多,如果能根据语音生成嘴部动画,那将极大便利我们的工作。后面是找到了SALSA的这款插件,并摸索出使用方法。 1 插件介绍 官方网站:https://crazyminnowstudio.com/ 一个能做2D纸片人和3D人物模型嘴部和眼睛动画的插件,由两人组成的独立工作室(疯狂米诺工作室)开发。 插件全名为SALSA With RandomEyes,2014年上架Asset Store,目前是已下架,替换为新版本

里约热内驴的博客 1万+

Leetcode389. 找不同(C++思路与代码)

给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 输入:s = “abcd”, t = “abcde” 输出:“e” 解释:‘e’ 是那个被添加的字母。 思路: 将字符串s装入哈希表中并且统计出现次数,遍历字符串t每个字符出现就减去1。如果某个字母对应的值小于0,那就说明这个字母在原来字符串中未出现返回。 class Solution { public: char findTheDiffer

azulgrana02的博客 690

把事务数据变成可分析数据:用 ABAP CDS 构建 Cube View 与 Query View,并拆解 OData 取数的底层路径

ABAP CDS分析建模:Cube与Query视图的实践解析 本文探讨了ABAP CDS分析建模中Cube View与Query View的核心区别与应用场景: 架构定位 Cube View作为分析型数据源,定义维度和度量的基础语义 Query View作为消费投影,控制查询可见字段和聚合逻辑 关键实现 通过@Analytics.dataCategory: #CUBE声明分析数据源 使用@DefaultAggregation确保指标口径一致性 @Analytics.query: true启用分析引擎特性 运

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 141

LeetCode 找不同

题目描述 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例: 输入: s = "abcd" t = "abcde" 输出: e 解释: 'e' 是那个被添加的字母。 问题分析 思路一: 对两个数组中各个字符出现的次数进行对比,出现次数不同的那个就是多的那个。 思路二: 异或法。 举...

NoNameMing的博客 311

机器人环境仿真软件:Webots_(9).路径规划与导航算法仿真实现

通过仿真,我们可以验证路径规划算法的有效性和鲁棒性,同时优化机器人在不同环境中的导航性能。动态窗口法是一种局部路径规划算法,通过在机器人当前速度空间中选择一个最优的速度窗口,使机器人在动态环境中安全地移动。算法的代价函数通常包括两个部分:从起始点到当前节点的实际代价(g-cost)和从当前节点到目标节点的估计代价(h-cost)。在World Editor中,选择“Insert”菜单,添加“Robot”对象,如“E-puck”或“Thymio”。Dijkstra算法的实现与A*算法类似,但不使用启发函数。

kkchenjj的博客 2006

【Claude】组织级认证限制报错已解决(4 种)

报错被禁用的是什么谁能解除应急方案整个 Console 组织Anthropic 支持换账户 / 订阅凭证API key 认证方式你的组织管理员用订阅/login订阅 OAuth 登录你的组织管理员用 API keyRoutines 功能你的组织所有者手动计划任务替代共同排查模式/status确认当前凭证;检查环境变量;看清报错消息里命名的是什么(key?组织访问?),对症清除;管理员层面的限制,找管理员解锁。

博客 1万+

力扣刷题笔记:找不同(LeetCode389)— Java

26 个字母是有顺序的,我们刚刚创建了一个长度为 26 的数组,就是为了能统计每个字符的出现次数,也就是说,这个数组里每个位置(索引)和我们的字母表是对应的,为了方便理解,先看这个表格(我们知道计算机内所有信息是以二进制的形式存储和处理的,26 个字母也是这样,不过我们给存储它们的数字起了个名字叫ASCII值)于是我们想到:比较的方法,比较的角度,比较的标准千千万万,各种各样的都有,那我能不能给 s 和 t 内的字符也找到一个统一的衡量标准,使得我们能通过这个标准的找到多出的那一个呢?

2501_90563889的博客 1060

高通拨号流程介绍

本文介绍了高通平台(如SDX55)中APSS(A7处理器)与ModEM(Q6处理器)间的通信机制。

四儿家的小祖宗的博客 1068

【简单】力扣算法题解析LeetCode389:找不同

LeetCode 389 找不同 - 异或解法 问题描述: 给定两个字符串s和t,其中t是由s随机重排后插入一个新字符生成的。要求找出并返回被添加的字符。 核心思路: 利用异或运算的特性: 相同字符异或结果为0 0与任何字符异或结果为该字符本身 异或满足交换律和结合律 解题步骤: 初始化res=0 遍历s,所有字符与res异或 遍历t,所有字符与res异或 最终res即为被添加的字符 时间复杂度:O(n) 空间复杂度:O(1)

ylumwd的博客 787

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

力扣——编程基础 389找不同

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

m0_56222212的博客 1786

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

力扣-389 找不同

力扣-389 找不同 AC Code class Solution { public: char findTheDifference(string s, string t) { sort(s.begin(),s.end()); sort(t.begin(),t.end()); int n = s.size(); for(int i=0;i<n;i++){ if(s[i]!=t[i]) return t[i]

hero_th的博客 331

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【力扣(LeetCode)】【C/C++】【389.找不同】

力扣算法刷题

繁华倾夏的博客 462

力扣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

[LeetCode力扣] 389-找不同

只需要用相同的方法遍历两个字符串,找到val为负数的那个键值对即可。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。输入:s = “abcd”, t = “abcde”给定两个字符串 s 和 t ,它们只包含小写字母。输入:s = “”, t = “y”解释:‘e’ 是那个被添加的字母。的影响,看到查找字符就想用哈希表。请找出在 t 中被添加的字母。

m0_61900513的博客 448

LeetCode 389. 找不同 | Python

思路:计数、位运算、求和

"大梦三千秋的博客 515

Leetcode389. 找不同c++实现

Leetcode389. 找不同c++实现 题目描述 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例: 输入: s = “abcd” t = “abcde” 输出: e 解释: ‘e’ 是那个被添加的字母。 代码实现 分析:1.数学运算异或符合交换律,2.一个数与自身异或结果为0,与0 异或结...

qq_35091252的博客 514

Leetcode 389. 找不同(Find the Difference)

Leetcode 389.找不同 1 题目描述(Leetcode题目链接)   给定两个字符串 s 和 t,它们只包含小写字母。   字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。   请找出在 t 中被添加的字母。 输入: s = "abcd" t = "abcde" 输出: e 解释: 'e' 是那个被添加的字母。 2 题解   添加了一个字符,意味着两个字符串所有的字...

qq_39378221的博客 517

[Golang]力扣Leetcode - 389. 找不同(求和)

[Golang]力扣Leetcode - 389. 找不同(求和)

皮埃尔的博客 361

力扣389题:找不同

理解:由题目可知字符串t要比s多一个,所以我想的是,把s和t都转化为char型数组,单个的字符,然后可以通过Arrays.sort(名字)来把两个char型数组都排好序,按照升序来排的;接着,用一个for循环(注意i是<n-1的,因为最后一个不用去遍历,在程序的末尾,返回最后那个值),在for循环里面去驻个比较里面的字符,如果有不符合的,则返回那个值,用临时变量来存储那个值,然后返回。由题目可知char1的数组的大小肯定比char2的大小要小。

yyyyyyuuyuuuuu的博客 246

力扣(leetcode)第389题找不同(Python)

最后,我写了一篇MySQL教程,里面详细的介绍了MySQL的基本概念以及操作指令等内容,欢迎阅读!字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。输入:s = “abcd”, t = “abcde”给定两个字符串 s 和 t ,它们只包含小写字母。输入:s = “”, t = “y”解释:‘e’ 是那个被添加的字母。请找出在 t 中被添加的字母。s 和 t 只包含小写字母。

qq_58737789的博客 738

Leetcode389. 找不同

Leetcode389. 找不同

ProgramNovice的博客 798
上一篇: leetcode 387.字符串中的第一个唯一字符
下一篇: leetcode 412.Fizz Buzz
黑暗主宰
博客等级 码龄9年 72粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值