当前位置:网站首页>Leecode-205. 同构字符串
Leecode-205. 同构字符串
2022-08-09 23:26:00 【风吟Pro】
主要思路就是用哈希Map以K-V的形式来进行两个字符串同一个位置上的格式映射
leetcode官方思路
我们维护两张哈希表,
第一张哈希表s2t 以 s 的字符为键,映射至 t 的字符为值,
第二张哈希表t2s 以 t 的字符为键,映射至 s 的字符为值。
从左至右遍历两个字符串的字符,不断更新两张哈希表
如果出现冲突
(即当前下标 index 对应的字符 s[index] 已经存在映射且不为 t[index] 或当前下标 index 对应的字符 t[index] 已经存在映射且不为 s[index])时说明两个字符串无法构成同构,返回 false。
如果遍历结束没有出现冲突,则表明两个字符串是同构的,返回 true 即可。
class Solution {
public boolean isIsomorphic(String s, String t) {
//创建哈希表
Map<Character, Character> s2t = new HashMap<Character, Character>();
Map<Character, Character> t2s = new HashMap<Character, Character>();
//这里不用管遍历多少遍,如果遍历都不不够长,那么必然是字符串长度不同,也就是不同构
for(int i=0;i<s.length();++i){
//拿到每个位置的字符
char x=s.charAt(i);
char y=t.charAt(i);
//如果任意一个表的key已经存在,并且拿到的value和当前的目标value不一致,就代表映射失败
if(s2t.containsKey(x)&&s2t.get(x)!=y||
t2s.containsKey(y)&&t2s.get(y)!=x){
return false;
}
//匹配成功,把当前的映射存进两个表
s2t.put(x,y);
t2s.put(y,x);
}
return true;
}
}
边栏推荐
猜你喜欢
随机推荐
NotWritableError: The current user does not have write permissions when conda creates a new environment
拒绝“重复造轮子”,百度EasyDL让你玩转AI定制开发
Digital wallets, red sea ecological rapid introduction of small programs can help capture device entry wisdom
【SSL集训DAY3】控制棋盘【二分图匹配】
【云原生】Kubernetes编排工具精讲
防火墙之系统防护
CST Studio Suite 2021软件安装包和安装教程
网络协议05 -网络层
字节技术面都过了,薪资都谈好了20K*13结果还是被刷了,问HR原因是。。。
下班后用微信处理工作时发病身亡,法院判决:工伤!
Alibaba Cloud SMS Service Activation
C language learning journey [operator (incomplete version)]
【SSL集训DAY2】Sort【树状数组】
《GB5084-2021》PDF下载
[Cloud native] Kubernetes orchestration tools
基于ABP的AppUser对象扩展
十位时间戳转化成时间
CAD 连接两个相交线
【obs】obsqsv11 硬编 及与metartc codec对比
dlopen failed: library "libtaml.so" not found