题目

给出两个长度相同的字符串 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 字符串转化相关推荐

  1. [Swift]LeetCode1153. 字符串转化 | String Transforms Into Another String

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:为敢(WeiGanTechnologies) ➤博客园地址:山青咏芝(https://www.cnblo ...

  2. python输入字符串转换为公式_将python字符串转化成长表达式的函数eval实例

    爬一个网页时,要保存的数据都没有encode,就导致保存下来的中文都变成unicode了... 那么,怎么把一个表示字符串的unicode还原成unicode呢? 函数eval(expression) ...

  3. R语言as.Date函数将字符串转化为日期格式实战

    R语言as.Date函数将字符串转化为日期格式实战 目录 R语言as.Date函数将字符串转化为日期格式实战 #基础语法 # 仿真数据

  4. 程序员面试题100题第17题——字符串转化为整数

    题目:把输入的字符串转化为整数,如:"-456" 输出456."+456"输出456,"456"输出"456",如果是非 ...

  5. 如何将比Long类型更大数值字符串转化为整数

    前几天,需要做一个number类型的数据库主键唯一处理,而且有38位.于是再想使用什么规则控制唯一性.最后决定采用时间,年月日时分秒毫秒,再加随机数. 问题产生了,如何将一个38位的数字字符串转化为整 ...

  6. 《剑指offer》-- 栈的压入与弹出序列、把字符串转化为整数、扑克牌顺子、孩子们的游戏(圆圈中最后剩下的数)

    一.栈的压入与弹出序列: 1.题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序. 假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序 ...

  7. 算法: 把字字符串转化为整数;

    算法: 把字字符串转化为整数: * @问题: 把字符串转化为整数* 题目描述* 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返 ...

  8. 【mysql】str_to_date()字符串转化为日期类型

    前言 mysql 5.7.31 字符串转化为日期类型 SELECT str_to_date('2021-05-07', '%Y-%m-%d'); /*2021-05-07*/ SELECT str_t ...

  9. JS解析json数据并将json字符串转化为数组的实现方法

    json数据在ajax实现异步交互时起到了很重要的作用,他可以返回请求的数据,然后利用客户端的js进行解析,这一点体现出js的强大,本文介绍JS解析json数据并将json字符串转化为数组的实现方法, ...

  10. 牛客题霸 [将字符串转化为整数] C++题解/答案

    牛客题霸 [将字符串转化为整数] C++题解/答案 题目描述 实现函数 atoi .函数的功能为将字符串转化为整数 提示:仔细思考所有可能的输入情况.这个问题没有给出输入的限制,你需要自己考虑所有可能 ...

最新文章

  1. 2022-2028年中国密集型光波复用(DWDM)设备行业市场前瞻与投资战略规划分析报告
  2. Android10.0 四大组件与进程启动间关系
  3. fedora21 mysql_在fedora21 上的php+mysql+apache环境搭建
  4. V-rep对UR3机械臂仿真路径规划
  5. html5编辑器自带js,javaScript编辑器-HBulider
  6. ACL 2018论文解读 | 基于路径的实体图关系抽取模型
  7. linux永久设置nlslang,【图片】Liddy's Linux编译日志(版本8.4)【蕾迪猫的linux吧】_百度贴吧...
  8. Vue项目实战07:引入Normalize.css样式初始化
  9. 信息学奥赛一本通C++语言——1013:温度表达转化
  10. BP(Back Propagation)神经网络——原理篇
  11. xh2.54母头转换为杜邦线母头
  12. sublime text3 verilog代码编写高级操作篇
  13. PCI、PCIE、PIC
  14. 全脑地图:单个记忆被拆分存储在多个相连的大脑区域
  15. python编写程序输出诗句_Python一日一练02----诗词生成器
  16. 为什么中国公司要让员工用英文名或者花名?
  17. MichiGAN:Multi-Input-Conditioned Hair Image Generation for Portrait Editing---论文阅读笔记
  18. 移动App下载量SEO优化
  19. 电子价签带来的竞争优势
  20. PS-InSAR公路互通变形监测

热门文章

  1. C语言课设-单位车辆调度管理
  2. ambari登录页面打不开,报错:postgresql ...... Check that the hostname and port are correct......
  3. HTML onfocus (获得焦点)和 onblur (失去焦点)
  4. Dubbo 常见的负载均衡(Load Balance)算法,一起学习一下吧~
  5. 复制html代码怎么粘贴快捷键,复制和粘贴快捷键ctrl加什么
  6. 企业如何做好网址安全,防止入侵。
  7. 二项式定理学习笔记(详解)
  8. 直播六脉神剑,练好这几招才能行走江湖
  9. Docker参数 -i -t 的作用
  10. Uncaught initialization exception thrown by servlet