题解 | #农场智能分类系统#
农场智能分类系统
https://www.nowcoder.com/practice/a2c9a3fce4f141a3956fe67cd00cc3e2
- 题目考察的知识点 : 字符串,哈希表
- 题目解答方法的文字分析:
- 维护一个哈希表 mapping,用于记录 s 中每个字符到 t 中对应字符的映射关系,并同时检查是否满足同构条件。
- 遍历 s 和 t 两个字符串,依次比较相同位置上的字符。如果当前字符已经在哈希表中出现过,那么就检查其对应的映射关系是否与当前字符相同;否则,就将其加入哈希表中。如果当前字符的映射关系与之前不同,则说明 s 和 t 不满足同构条件。当遍历结束后,如果 s 和 t 满足同构条件,则返回 "YES";否则,返回 "NO"。
- 本题解析所用的编程语言: Python
- 完整且正确的编程代码
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param s string字符串
# @param t string字符串
# @return string字符串
#
class Solution:
def isIsomorphic(self, s: str, t: str) -> str:
n = len(s)
if n != len(t):
return "NO"
mapping = {}
used_chars = set()
for i in range(n):
if s[i] in mapping:
if mapping[s[i]] != t[i]:
return "NO"
else:
if t[i] in used_chars:
return "NO"
mapping[s[i]] = t[i]
used_chars.add(t[i])
return "YES"
牛客高频top202题解系列 文章被收录于专栏
记录刷牛客高频202题的解法思路
