給定兩個字符串s和t,確定它們是否是同構的。同構字符串
如果s中的字符可以被替換以獲得t,那麼兩個字符串是同構的。
所有出現的字符都必須用另一個字符替換,同時保留字符的順序。沒有兩個角色可以映射到相同的角色,但角色可以映射到自己。例如, 給定「egg」,「add」,返回true。
給出「foo」,「bar」,返回false。
鑑於「紙」,「標題」,返回true。
注意: 你可以假設s和t長度相同。
我有這個解決方案,但它需要太多的時間。 什麼好的解決辦法可以理解
public boolean isIsomorphic(String s, String t) {
String resString1="",resString2="";
HashMap<Character,Integer> hashmapS = new HashMap();
HashMap<Character,Integer> hashmapT = new HashMap();
boolean flag = false;
for(int i = 0;i<s.length();i++)
{
char chS = s.charAt(i);
char chT = t.charAt(i);
if(hashmapS.containsKey(chS))
{
resString1 = resString1 + hashmapS.get(chS);
}
else
{
resString1 = resString1 + i;
hashmapS.put(chS, i);
}
if(hashmapT.containsKey(chT))
{
resString2 = resString2 + hashmapT.get(chT);
}
else
{
resString2 = resString2 + i;
hashmapT.put(chT, i);
}
}
if(resString1.equals(resString2))
return true;
else
return false;
}
您的實現中未涉及的情況時: 輸入: 「AB」 「AA」 輸出: 真正 預計: 假 –
更新的代碼。感謝您的反饋。 – YoungHobbit