leetcode 205. Isomorphic Strings|Java最短コード実装
原題リンク:
205. Isomorphic Strings
【考え方】
HashMapデータ構造を使用する必要があります.mapには、sの各文字をmapのkey、tの各文字をmapのvalueとするマッピングのペアが格納されます.次の順に移動します.
1.mapにkeyが含まれていない場合は、keyとvalueのペアをmapに格納します.もちろん、保存されたvalueがtに表示されないことを保証する必要があります.そうしないと、s=「abc」になり、t=「aaa」もtrueに戻る可能性があります.HashSetが必要です.
2.mapにkeyが含まれている場合、対応する対応するvalueを取り出し、そのvalueとtの対応する位置のcharを比較し、等しくなければfalseを返す
30/30 test cases passed. Runtime: 25 ms Your runtime beats 58.39% of javasubmissions.
205. Isomorphic Strings
【考え方】
HashMapデータ構造を使用する必要があります.mapには、sの各文字をmapのkey、tの各文字をmapのvalueとするマッピングのペアが格納されます.次の順に移動します.
1.mapにkeyが含まれていない場合は、keyとvalueのペアをmapに格納します.もちろん、保存されたvalueがtに表示されないことを保証する必要があります.そうしないと、s=「abc」になり、t=「aaa」もtrueに戻る可能性があります.HashSetが必要です.
2.mapにkeyが含まれている場合、対応する対応するvalueを取り出し、そのvalueとtの対応する位置のcharを比較し、等しくなければfalseを返す
public boolean isIsomorphic(String s, String t) {
HashSet<Character> set = new HashSet<Character>();
HashMap<Character, Character> map = new HashMap<Character, Character>();
for (int i = 0; i < s.length(); i++) {
if (!map.containsKey(s.charAt(i))) {
map.put(s.charAt(i), t.charAt(i));
if (!set.add(t.charAt(i))) return false; // s = "abc", t = "aaa"
} else {
if (map.get(s.charAt(i)) != t.charAt(i)) return false;
}
}
return true;
}
30/30 test cases passed. Runtime: 25 ms Your runtime beats 58.39% of javasubmissions.