LeetCode 389题 找不同
时间:2021-04-22
本文章向大家介绍LeetCode 389题 找不同,主要包括LeetCode 389题 找不同使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
LeetCode 389题 找不同
题目描述:
给定两个字符串 s 和 t,它们只包含小写字母。
字符串 *t* 由字符串 *s* 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
涉及内容:哈希表
示例:
输入:s = "abcd", t = "abcde"
输出:"e"
解释:'e' 是那个被添加的字母。
思路:
对于字符串来说,一个比较好的思路就是将其转化为ASCII码的形式(这个思路在其他面对字母字符串的时候也可以借鉴考虑一下),之后我们遍历字符串s,为了作为对比,我们将读入的字符串的ASCII减去97(因为a对于的就是97),得到索引值,然后将索引值-1(这里-1 -2 +1 都行 只是为了方便和索引区别开)存入到哈希表中。之后遍历字符串t,与上述遍历同样的方法,只不过这里我们将索引值+1存入(反正就是和遍历s时互反就好了)。最后我们只需要遍历哈希表里面的值,若为1则是所添加的字母(因为本题只添加了一个多的元素,所以添加的那个哈希表的value必为1)
提交结果:
完整代码:
class Solution:
def findTheDifference(self, s: str, t: str) -> str:
if len(s)==0:
return t
table=[0]*26
for i in range(len(t)):
if i <len(s):
table[ord(s[i])-ord('a')]-=1
table[ord(t[i])-ord('a')]+=1
for i in range(26):
if table[i]!=0:
return chr(i+97)
其他思路:
首先将两个字符串合并为a
在a中遍历,如果出现奇数次的字符即为不同的字符
原文地址:https://www.cnblogs.com/leohbz/p/14691416.html
- 区块链学堂——区块链有前途吗?
- 程序猿的日常——Java基础之抽象类与接口、枚举、泛型
- addSubView需要注意的几个点为什么要在addsubview:一个view对象后,release它?
- nodejs 命令行、自定义
- GeForce驱动EULA更新惹争议,NVIDIA的理由是这样的
- 关于HTML面试题汇总之visibility
- 加密狗进场暴富开始?请别侮辱区块链和游戏
- 程序猿的日常——Java基础之clone、序列化、字符串、数组
- [你必须知道的.NET] 第四回:后来居上:class和struct
- oc 中随机数的用法(arc4random() 、random()、CCRANDOM_0_1()
- 央行出台条码支付新规;美团打车将在7大城市上线;国产人工智能平台型芯片首发;苹果就降速门致歉
- 阿三又让全球看笑话,无人驾驶的地铁名不副实,还直接跑到大街上
- 盘点:2017年度这些科学大事件,哪个给您印象最深?
- 跳台阶问题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Azure给ubuntu虚拟机挂载数据盘的详细步骤
- 详解SSH 远程执行任务的方法
- Linux基础学习之文件查找find的常见用法
- Linux基础之xargs命令的入门实例
- CentOS 7.4下安装Oracle 11.2.0.4数据库的方法
- CentOS桌面环境中网卡启动失败的解决方法
- 浅谈Linux vfork与fork简单对比分析
- Linux定时任务Crontab的使用方法
- linux虚拟网络设备之vlan配置详解
- Centos7安装完后无法联网的解决方法
- Linux静态链接库与模板类的处理方式
- 深入研究RocketMQ消费者是如何获取消息的
- CentOS7下 Apache的安装配置方法
- expect命令在linux下实现批量ssh免密
- 学习Vim合并行的方法和技巧