LeetCode1153 字符串转化
题目
给出两个长度相同的字符串 str1 和 str2。请你帮忙判断字符串 str1 能不能在 零次 或 多次 转化 后变成字符串 str2。
每一次转化时,你可以将 str1 中出现的 所有 相同字母变成其他 任何 小写英文字母。
只有在字符串 str1 能够通过上述方式顺利转化为字符串 str2 时才能返回 true 。
示例 1:
输入:str1 = "aabcc", str2 = "ccdee"
输出:true
解释:将 'c' 变成 'e',然后把 'b' 变成 'd',接着再把 'a' 变成 'c'。注意,转化的顺序也很重要。
示例 2:
输入:str1 = "leetcode", str2 = "codeleet"
输出:false
解释:我们没有办法能够把 str1 转化为 str2。
提示:
1 <= str1.length == str2.length <= 104
str1 和 str2 中都只会出现小写英文字母
解题思路(哈希表)
因为每次转化的时候,会一次性的将 str1 中出现的所有的相同字母都改变成同一个字符。所以当 str1 中某两个下标 i 和 j 字符相同时,那么 str2 中这个两个下标的字符也必须相同。我们可以使用哈希表保存 str1 中每个第一次出现的字符对应 str2 中的字符。如果后面出现同样的字符,可以直接通过哈希表判断。这里我们用数组模拟哈希表。用两个数组模拟字符串之间的转换。当遇到之前出现的字母时进行比较是否相同。最后遍历数组,如果发现都用映射,说明转换失败。具体看代码:
代码
class Solution {public boolean canConvert(String str1, String str2) {if(str1.equals(str2)) {return true;}int[] from = new int[26], to = new int[26];Arrays.fill(from, -1);Arrays.fill(to, -1);for(int i = 0; i < str1.length(); i++) {int a = str1.charAt(i) - 'a', b = str2.charAt(i) - 'a';if(from[a] >= 0 && from[a] != b) {return false;}from[a] = b;to[b] = a;}for(int i : to) {if(i < 0) {return true;}}return false;}
}
LeetCode1153 字符串转化相关推荐
- [Swift]LeetCode1153. 字符串转化 | String Transforms Into Another String
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:为敢(WeiGanTechnologies) ➤博客园地址:山青咏芝(https://www.cnblo ...
- python输入字符串转换为公式_将python字符串转化成长表达式的函数eval实例
爬一个网页时,要保存的数据都没有encode,就导致保存下来的中文都变成unicode了... 那么,怎么把一个表示字符串的unicode还原成unicode呢? 函数eval(expression) ...
- R语言as.Date函数将字符串转化为日期格式实战
R语言as.Date函数将字符串转化为日期格式实战 目录 R语言as.Date函数将字符串转化为日期格式实战 #基础语法 # 仿真数据
- 程序员面试题100题第17题——字符串转化为整数
题目:把输入的字符串转化为整数,如:"-456" 输出456."+456"输出456,"456"输出"456",如果是非 ...
- 如何将比Long类型更大数值字符串转化为整数
前几天,需要做一个number类型的数据库主键唯一处理,而且有38位.于是再想使用什么规则控制唯一性.最后决定采用时间,年月日时分秒毫秒,再加随机数. 问题产生了,如何将一个38位的数字字符串转化为整 ...
- 《剑指offer》-- 栈的压入与弹出序列、把字符串转化为整数、扑克牌顺子、孩子们的游戏(圆圈中最后剩下的数)
一.栈的压入与弹出序列: 1.题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序. 假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序 ...
- 算法: 把字字符串转化为整数;
算法: 把字字符串转化为整数: * @问题: 把字符串转化为整数* 题目描述* 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返 ...
- 【mysql】str_to_date()字符串转化为日期类型
前言 mysql 5.7.31 字符串转化为日期类型 SELECT str_to_date('2021-05-07', '%Y-%m-%d'); /*2021-05-07*/ SELECT str_t ...
- JS解析json数据并将json字符串转化为数组的实现方法
json数据在ajax实现异步交互时起到了很重要的作用,他可以返回请求的数据,然后利用客户端的js进行解析,这一点体现出js的强大,本文介绍JS解析json数据并将json字符串转化为数组的实现方法, ...
- 牛客题霸 [将字符串转化为整数] C++题解/答案
牛客题霸 [将字符串转化为整数] C++题解/答案 题目描述 实现函数 atoi .函数的功能为将字符串转化为整数 提示:仔细思考所有可能的输入情况.这个问题没有给出输入的限制,你需要自己考虑所有可能 ...
最新文章
- 2022-2028年中国密集型光波复用(DWDM)设备行业市场前瞻与投资战略规划分析报告
- Android10.0 四大组件与进程启动间关系
- fedora21 mysql_在fedora21 上的php+mysql+apache环境搭建
- V-rep对UR3机械臂仿真路径规划
- html5编辑器自带js,javaScript编辑器-HBulider
- ACL 2018论文解读 | 基于路径的实体图关系抽取模型
- linux永久设置nlslang,【图片】Liddy's Linux编译日志(版本8.4)【蕾迪猫的linux吧】_百度贴吧...
- Vue项目实战07:引入Normalize.css样式初始化
- 信息学奥赛一本通C++语言——1013:温度表达转化
- BP(Back Propagation)神经网络——原理篇
- xh2.54母头转换为杜邦线母头
- sublime text3 verilog代码编写高级操作篇
- PCI、PCIE、PIC
- 全脑地图:单个记忆被拆分存储在多个相连的大脑区域
- python编写程序输出诗句_Python一日一练02----诗词生成器
- 为什么中国公司要让员工用英文名或者花名?
- MichiGAN:Multi-Input-Conditioned Hair Image Generation for Portrait Editing---论文阅读笔记
- 移动App下载量SEO优化
- 电子价签带来的竞争优势
- PS-InSAR公路互通变形监测
热门文章
- C语言课设-单位车辆调度管理
- ambari登录页面打不开,报错:postgresql ...... Check that the hostname and port are correct......
- HTML onfocus (获得焦点)和 onblur (失去焦点)
- Dubbo 常见的负载均衡(Load Balance)算法,一起学习一下吧~
- 复制html代码怎么粘贴快捷键,复制和粘贴快捷键ctrl加什么
- 企业如何做好网址安全,防止入侵。
- 二项式定理学习笔记(详解)
- 直播六脉神剑,练好这几招才能行走江湖
- Docker参数 -i -t 的作用
- Uncaught initialization exception thrown by servlet