题目来源:https://leetcode.com/problems/isomorphic-strings
题目难度:Easy
解答1[Java]
1 | class Solution { |
思路
不直接建立字母之间的映射关系,而是把要建立映射关系的字母同时映射到另外一个数字。相当于建立了一个间接映射关系。
解答1小优化
1 | class Solution { |
反复调用 String 类的 charAt()
方法是比较慢的,优化之后运行总时间由 4ms 减为2ms。可能是函数调用也要占用一部分空间。而直接使用数组,除了数组的空间不需要额外的空间。
空间占用,两次调用,数值差距很大,不知道为什么。
解答2[Java]:
1 | class Solution { |
思路
这个算法是通过两个数组,两个数组对应两种映射关系。但是都是字符映射到字符的。
这个算法比上边使用 int 数组的算法要快。上边的算法优化之后是 2ms,但是这个算法是 1ms。
难道是因为使用 char 数组比使用 int 数组效率更高?