Ejemplo 1:
Entrada: s = "huevo", t = "agregar"
Salida: verdadera
Ejemplo 2:
Entrada: s = "foo", t = "bar"
Salida: falso
Ejemplo 3:
Entrada: s = "papel", t = "título"
Salida: verdadera
En la pregunta, la longitud predeterminada de syt son iguales,
no hay necesidad de juzgar si la longitud de syt son iguales
1. Recorrido de índice simple El
primero es el método de función de índice más simple.
Cuando se repite el carácter, el índice devuelve el primer valor encontrado por defecto.
Si se repite
en s pero no en t, al recorrer valores repetidos:
para valores repetidos s devolverá repetido El índice del primer dígito,
pero el valor del índice devuelto es diferente si t no se repite
class Solution:
def isIsomorphic(self, s: str, t: str) -> bool:
for i in range(0, len(s)):
if s.index(s[i]) != t.index(t[i]):
return False
return True
En segundo lugar, la tabla hash que
utiliza la tabla hash es ciertamente problemática de escribir, pero puede reducir significativamente la complejidad del tiempo, mejorar la eficiencia operativa
son los primeros caracteres, ya que los caracteres clave se asignan al valor t
porque los caracteres deben reemplazarse
por completo, por lo que agregar a juzgar si el carácter en s se asigna al carácter en t.
Finalmente, juzgar si el valor de asignación de s en la tabla hash es el mismo que el valor correspondiente en t (es único)
Si la asignación correspondiente as es diferente ( no es único), devuelve False
class Solution:
def isIsomorphic(self, s: str, t: str) -> bool:
hash_map = {
}
for i in range(len(s)):
if s[i] not in hash_map:
if t[i] in hash_map.values():
return False
else:
hash_map[s[i]] = t[i]
else:
if hash_map[s[i]] != t[i]:
return False
return True