2020-12-03(205. 同構字串)

TickTick123發表於2020-12-03
class Solution {
    public boolean isIsomorphic(String s, String t) {
        int a1[]=new int[300];
        List<Integer> b1=new ArrayList<>();
        int temp1=1;
        if(s.length()!=t.length()){
            return false;
        }
        for(int i=0;i<s.length();i++){
            if(a1[(int)s.charAt(i)]==0){
                a1[(int)s.charAt(i)]=temp1;
                b1.add(temp1);
                temp1++;
            }else{
                b1.add(a1[(int)s.charAt(i)]);
            }
        }
        int a2[]=new int[300];
        List<Integer> b2=new ArrayList<>();
        int temp2=1;
        for(int i=0;i<t.length();i++){
            if(a2[(int)t.charAt(i)]==0){
                a2[(int)t.charAt(i)]=temp2;
                b2.add(temp2);
                temp2++;
            }else{
                b2.add(a2[(int)t.charAt(i)]);
            }
        }
        for(int i=0;i<b1.size();i++){
            if(b1.get(i)!=b2.get(i)){
                return false;
            }
        }
        return true;
    }
}

現學現用list,用temp做標記還是可以的吧。
別人回答的s.find(char a):返回字元a第一次出現在陣列s中的下標。巧用了這個功能,秒的不行

相關文章