zoukankan      html  css  js  c++  java
  • isIsomorphic

    超时版:

    /*
    Given two strings s and t, determine if they are isomorphic.
    
    Two strings are isomorphic if the characters in s can be replaced to get t.
    
    All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character but a character may map to itself.
    
    For example,
    Given "egg", "add", return true.
    
    Given "foo", "bar", return false.
    
    Given "paper", "title", return true.
    
    Note:
    You may assume both s and t have the same length.*/
    import java.util.*;
    
    public class Isomorphic_strings {
    
        public static void main(String[] args)
        // TODO Auto-generated method stub
        {
            System.out.println(isIsomorphic("papera", "titlei"));
            /*
             * String str="dauqka"; String str1=str.replace('a','x'); str=str1;
             * System.out.println(str);
             */
    
        }
    
        public static boolean isIsomorphic(String s, String t) {
    
            int x = 0;
            if (s.length() != t.length())
                return false;
            char[] s_chs = s.toCharArray();
            char[] t_chs = t.toCharArray();
            for (int i = 0; i < s_chs.length; i++) {
                if (!(s_chs[i] == t_chs[i])) {
                    for (int j = 0; j < i; j++) {
                        if ((t_chs[j] == t_chs[i]))
                            x = 1;
                    }
                }
                if (x == 0)
                    t = t.replace(t_chs[i], s_chs[i]);
                if (x == 1) {
                    t_chs[i] = s_chs[i];
                    t = String.valueOf(t_chs);
    
                }
                t_chs = t.toCharArray();
            }
    
            return (s.equals(t));
    
        }
    
    }

     AC

    public static boolean isIsomorphic(String s, String t) {
    
            
            Map<Character, Character> hm = new HashMap<Character, Character>();
            if (s.length() != t.length())
                return false;
            char[] s1 = s.toCharArray();
            char[] t1 = t.toCharArray();
            for (int i = 0; i < s1.length; i++) {
                if (hm.containsKey(s1[i])) {
                    if ((t1[i] != hm.get(s1[i])))
                        return false;
                }
                hm.put(s1[i], t1[i]);
            }
    
            return true;
        }
    
    }
  • 相关阅读:
    java基础(7)
    log4j日志打印级别动态调整
    前端学习
    windows下 使用vs command tools 和mingw 分别编译 openssl
    收尾作业(3)
    收尾作业(2)
    收尾作业(1)
    收尾作业第一个接口
    图形建模需求
    收尾作业2
  • 原文地址:https://www.cnblogs.com/kydnn/p/4548109.html
Copyright © 2011-2022 走看看