leetcode:389. 找不同
一、题目
函数原型:char findTheDifference(char * s, char * t)
二、思路
作者原先的思路是先将两个字符串从小到大排序,然后两个字符串依次比较。若出现字符串t中的元素和字符串s不相等,则说明该元素就是被添加的字母。
但是,该算法时间上仅仅击败13.33%的人,效率极低。
int cmp(const void *e1,const void *e2) {return *(char*)e1 - *(char*)e2; }char findTheDifference(char * s, char * t){int sz1=strlen(s);int sz2=strlen(t);qsort(s,sz1,1,cmp);qsort(t,sz2,1,cmp);int i=0;for(i=0;i<sz1;i++){if(s[i]!=t[i]&&s[i]==t[i+1]){return t[i];}}return t[i]; }下面介绍几种时间效率比较高的算法:
思路1:
利用找单身狗的思想,详见:《leetcode:136. 只出现一次的数字(找单身狗)》
将两个字符串全部进行异或运算,最后得到的就是只出现一次的字母,即被添加的字母
char findTheDifference(char* s, char* t) {char result=0;int sz1=strlen(s);int sz2=strlen(t);for(int i=0;i<sz1;i++){result^=s[i];}for(int i=0;i<sz2;i++){result^=t[i];}return result; }思路2:
用字符串t的字母总和减去字符串s的字母总和,因为相同字母相减结果为0,所以剩下的就是被添加的字母
char findTheDifference(char* s, char* t) {char result=0;int sz1=strlen(s);int sz2=strlen(t);for(int i=0;i<sz2;i++){result+=t[i];}for(int i=0;i<sz1;i++){result-=s[i];}return result; }思路3:
设置一个大小为26的数组(初始值为0),字母 a-z 分别对应位置 0-25 ,通过各字母通过减去a可以转换为对应的数字。先遍历字符串s,当某个字母出现其对应的位置就+1;再遍历字符串t,当某个字母出现其对应位置就-1。最后若某个位置变为了-1,说明该字母在s中未出现,在t中出现了,该字母就是被添加的字母,返回该字母即可。
char findTheDifference(char* s, char* t) {int nums[26]={0};memset(nums,0,sizeof(nums));int sz1=strlen(s);int sz2=strlen(t);for(int i=0;i<sz1;i++){nums[s[i]-'a']++;}for(int i=0;i<sz2;i++){nums[t[i]-'a']--;if(nums[t[i]-'a']==-1)return t[i];}return ' '; }
相关文章:
leetcode:389. 找不同
一、题目 函数原型:char findTheDifference(char * s, char * t) 二、思路 作者原先的思路是先将两个字符串从小到大排序,然后两个字符串依次比较。若出现字符串t中的元素和字符串s不相等,则说明该元素就是被添加的字母。 但是,该…...
c 函数调用过程中,调用函数的栈帧一旦被修改,被调用函数则无法正确返回。( X )
当一个函数被调用时,它的栈帧会被创建并压入调用栈中。栈帧包含了函数的局部变量、参数以及返回地址等信息。当函数执行完毕后,栈帧会被弹出,返回到调用函数的位置继续执行。 下面是一个示例代码,展示了调用函数栈帧被修改但不影…...
专为个人打造专注工作的便签APP工具推荐哪个
工作中很多人都比较懒散,工作起来动力不足,常常拖延消极怠工,等到一天结束后进行工作盘点时才发现很多项任务都没有处理完;这和日常工作不能专注于工作有很大的关系。 专注工作,在日常办公时可以选择一些好用的手机便…...
代码随想录算法训练营第四十二天 | LeetCode 1049. 最后一块石头的重量 II、494. 目标和、474. 一和零
代码随想录算法训练营第四十二天 | LeetCode 1049. 最后一块石头的重量 II、494. 目标和、474. 一和零 文章链接:最后一块石头的重量 II 目标和 一和零 视频链接:最后一块石头的重量 II 目标和 一和零 1. LeetCode 1049. 最后一块石头的重量 II 1.1 思路…...
Windows PowerShell 和 Linux BashShell 极简对比
声明:本文不会涉及原理,详细的介绍,也不是入门文章。仅仅从使用上进行简单比较 命令 在 bash 中,一个命令是一个单独的进程;而在 PowerShell 中,命令被称为 cmdlets,他们不是独立的可执行程序&…...
校验验证码是否过期(定时刷新验证码)
需求: 我们在登录的时候会遇到通过接口请求验证码的操作,这里的验证码会有过期的时间,当我们验证码过期了,我们要进行重新刷新验证码。 我们这里根据后端返回的当前时间和过期时间判断,过期的时间超过了当前时间的时候…...
windows idea本地执行spark sql避坑
本地安装了IDEA,并配置好了相关POM,可以在本机使用sparkSession连接数据,并在数据库执行sql,在idea展示执行结果。 但是,如果将数据的查询结果建立到spark中,再展示,就会报错 Error while run…...
在一个循环链队中只有尾指针(记为rear,结点结构为数据域data,指针域next),请给出这种队列的入队和出队操作实现过程
在一个循环链队中只有尾指针(记为rear,结点结构为数据域data,指针域next),请给出这种队列的入队和出队操作实现过程 入队过程如下图: 先创一个结点,用于存储要插入的结点数据 然后就是老套路了…...
智能客服系统应用什么技术?
随着科技的飞速发展,智能客服系统逐渐出现在我们的生活中。这些系统不仅能够提供即时的客户服务,还可以通过人工智能等技术实现更加高效和准确的服务。那么,智能客服系统究竟应用了哪些技术呢?本文将详细解析。 1、机器学习技术 …...
亚马逊、美客多卖家测评:如何建立养号团队实现运营化式测评?
大家好,我是跨境电商测评养号7年从事经验的珑哥。养号环境软件开发,深度解决各跨境平台矩阵养号防关联、砍单、F号问题。关注珑哥解决更多跨境养号测评问题。 测评,相信这个词对于大部分跨境卖家来说,想必都不陌生,因…...
苹果IOS系统webglcontextlost问题-解决方案
问题描述 在IOS手机 解码视频流的时候,第一次可以正常播放,但只要IOS手机熄屏,再重新唤醒,就会一直播放失败,无论换哪个浏览器都不行。安卓手机则一切正常。 经过排查,发现 IOS手机 的浏览器会无故 webGL…...
供应链ERP之合同:创建、修订与模板
本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…...
MySQL第二讲·表的创建与修改
你好,我是安然无虞。 文章目录 表:怎么创建和修改数据表?1. 如何创建数据表?2. 都有哪些约束?3. 如何修改表?添加字段修改字段 表:怎么创建和修改数据表? 创建和修改数据表&#x…...
springboot的循环依赖问题描述及解决方案
一.了解循环依赖的场景 在Spring Boot中,循环依赖是指两个或多个Bean之间相互依赖,导致它们无法正确地创建和注入。循环依赖可能会导致应用程序无法启动或出现其他异常。 在以下情况下,您可能需要显式设置循环依赖: 两个Bean相…...
当科技遇上神器:用Streamlit定制AI可视化问答界面
Streamlit是一个开源的Python库,利用Streamlit可以快速构建机器学习应用的用户界面。 本文主要探讨如何使用Streamlit构建大模型外部知识检索的AI问答可视化界面。 我们先构建了外部知识检索接口,然后让大模型根据检索返回的结果作为上下文来回答问题。…...
毛泽东思想和中国特色社会主义理论概论平时作业四
毛泽东思想和中国特色社会主义理论概论平时作业四 1.单选题 1.1人民代表大会制度是中国人民当家作主的基本政治制度,是我国的国体。(b) a.正确 b.错误 人民代表大会制度是中国人民当家作主的根本政治制度,是我国的政体。1.2我国的政体是人民民主专政。…...
微信怎么设置自动通过好友申请?
当开展引流获客活动时,员工会在一段时间内频繁收到好友添加的申请,手动同意好友请求费时费力还容易出现漏加的情况,那么微信能自动通过好友请求吗? 如何设置快速自动通过好友申请呢? 当微信号在系统登录,…...
亲测解决Pytorch TypeError: object of type ‘numpy.int64‘ has no len()
这个问题是小虎在初始化自适应平均池化的时候遇到的,解决方法是限制初始化时池化大小的类型。 问题原文 Exception has occurred: TypeError object of type numpy.int64 has no len()File "D:\Complier\LEF\lib\model\segmentation\heads\modules\fgModules…...
前端模拟实现可编辑的表格table插件
在做项目中遇到了一个供货记录的功能,要求用户自己编辑添加删除表格数据,接下来我们就模拟下前端如何实现该功能 <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><meta http-equiv"X-…...
PerfectPixel 插件,前端页面显示优化工具
1.简介 PerfectPixel 插件是一款适用于 Chrome 浏览器的网页前端页面显示优化工具,该插件能够帮助开发人员和标记设计人员在开发时将设计图直接加载至网页中,与已成型的网页进行重叠对比,以规范网页像素精度 作为一款可以优化前端页面显示的…...
5.20 明天见!拿好这份参会指南|AIGC2026峰会
组委会 发自 凹非寺量子位|公众号 QbitAI明天5月20日,09:30,中国AIGC产业峰会准时开场。提前查好路况,定好闹钟,我们现场见。所有人,马上AI起来。明天聊什么?议程帮你划重点上午场:A…...
【Windows版Redis安装本地使用】
本地安装运行 一、Redis官网 二、下载 三、配置redis服务 一、Redis官网 官网: redis 二、下载 下载版本:版本下载 下载完后,解压文件到文件夹 三、配置redis服务 打开目录对应的终端 安装redis服务 redis-server.exe --service-install redis.windows.conf --loglevel verbos…...
别再为Gurobi学术许可发愁了!手把手教你从申请到激活(附学信网报告攻略)
Gurobi学术许可全流程实战指南:从申请到Python集成 第一次接触Gurobi优化求解器时,我被它强大的性能所吸引,但随即陷入了学术许可申请的迷茫中。和许多研究生同学一样,我在学信网报告下载、邮件沟通、命令行激活等环节屡屡碰壁。本…...
WSL2下CUDA版本切换实战:从CUDA 12.0降级到11.1,成功安装diff-gaussian-rasterization
WSL2环境下CUDA版本切换与diff-gaussian-rasterization安装全指南 在AI和图形学项目的复现过程中,CUDA版本与依赖库的兼容性问题常常成为开发者的"拦路虎"。最近在复现一篇论文时,我遇到了diff-gaussian-rasterization库因CUDA版本不匹配而无…...
从狼群狩猎到参数调优:GWO算法在机器学习超参数搜索中的保姆级指南
从狼群狩猎到参数调优:GWO算法在机器学习超参数搜索中的保姆级指南 在机器学习项目的最后阶段,我们常常会陷入超参数优化的泥潭。网格搜索耗时费力,随机搜索像买彩票,而贝叶斯优化又过于复杂。这时候,一群来自大自然的…...
Google I/O 2026 推出 Antigravity SDK:本地构建 AI Agent,灵活定制功能
Antigravity SDK 登场当开发者需要将 AI 能力嵌入自有应用时,常见做法是通过 API 调用远程 Agent 服务,但这种方式存在延迟高、定制性差、依赖网络等问题。据悉,Google 在 I/O 2026 大会上给出了另一种解法 ---- Antigravity SDK,…...
3大策略掌握Avidemux视频编辑:从源码编译到专业级处理
3大策略掌握Avidemux视频编辑:从源码编译到专业级处理 【免费下载链接】avidemux2 Avidemux2, simple video editor 项目地址: https://gitcode.com/gh_mirrors/avi/avidemux2 Avidemux是一款开源跨平台视频编辑工具,专注于快速剪辑、编码转换和批…...
手把手教你用Wireshark和VirtualBox日志诊断eNSP错误代码40(保姆级排错流程)
从日志分析到网络诊断:eNSP错误代码40的深度排错指南 当eNSP模拟器弹出"错误代码40"的红色警告时,大多数用户的第一反应是寻找快速解决方案。但真正的网络工程师会告诉你,这个数字背后隐藏着虚拟网络世界的完整故事。本文将带您穿…...
嵌入式开发实战:软硬件协同设计与深度调试指南
1. 项目概述:嵌入式开发,一场与硬件的深度对话 干了十几年嵌入式,我越来越觉得,这行当本质上就是一场开发者与硬件之间旷日持久的“对话”。你写的每一行代码,最终都要落到那块小小的电路板上,去驱动LED闪烁…...
终极Il2CppDumper使用指南:从原理到实战的Unity逆向工程利器
终极Il2CppDumper使用指南:从原理到实战的Unity逆向工程利器 【免费下载链接】Il2CppDumper Unity il2cpp reverse engineer 项目地址: https://gitcode.com/gh_mirrors/il/Il2CppDumper Il2CppDumper是一款强大的Unity il2cpp逆向工程工具,能够帮…...

