题解 | #农场智能分类系统#
农场智能分类系统
https://www.nowcoder.com/practice/a2c9a3fce4f141a3956fe67cd00cc3e2
- 题目考察的知识点
字符串,哈希表
- 题目解答方法的文字分析
维护两张哈希表,第一张哈希表 s2t以 s中的字符为键,映射至 t的字符为值,第二张哈希表 t2s以 t 中字符为键,映射至 s的字符为值。从左至右遍历两个字符串的字符,不断更新两张哈希表,如果出现冲突,说明两个字符串无法构成同构,返回 NO。否则返回YES。
- 本题解析所用的编程语言
java
- 完整且正确的编程代码
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @param t string字符串
* @return string字符串
*/
public String isIsomorphic (String s, String t) {
Map<Character, Character> s2t = new HashMap<Character, Character>();
Map<Character, Character> t2s = new HashMap<Character, Character>();
int len = s.length();
for (int i = 0; i < len; ++i) {
char x = s.charAt(i), y = t.charAt(i);
if ((s2t.containsKey(x) && s2t.get(x) != y) || (t2s.containsKey(y) && t2s.get(y) != x)) {
return "NO";
}
s2t.put(x, y);
t2s.put(y, x);
}
return "YES";
}
}