Java Program To Check Isomorphic Strings

Chapter: String Handling Last Updated: 19-10-2016 16:39:10 UTC

Program:

            /* ............... START ............... */
                
import java.util.HashMap;
import java.util.Map;

public class JavaIsomorphicStrings {

	public static void main(String[] args) {
		checkIfIsoMorphic("paper", "title");
		checkIfIsoMorphic("foo", "app");
		checkIfIsoMorphic("foo", "bar");
		checkIfIsoMorphic("turtle", "tletur");
		checkIfIsoMorphic("add", "egg");
		checkIfIsoMorphic("br", "rr");
	}

	private static void checkIfIsoMorphic(String s1, String s2) {
		if (s1.length() == s2.length()) {
			s1 = s1.toLowerCase();
			s2 = s2.toLowerCase();
			if (s1.equals(s2)) {
				System.out.println(s1 + " and " + s2 + " are Isomorphic");
			} else {
				boolean isomorphic = true;
				Map<Character, Character> map = new HashMap<Character, Character>(0);
				for (int i = 0; i < s1.length(); i++) {
					char c1 = s1.charAt(i);
					char c2 = s2.charAt(i);
					if (map.containsKey(c1)) {
						if (map.get(c1) != c2) {
							isomorphic = false;
							break;
						}
					} else {
						if (map.containsValue(c2)) {

							isomorphic = false;
							break;
						} else {
							map.put(c1, c2);
						}
					}
				}
				if (isomorphic) {
					System.out.println(s1 + " and " + s2 + " are Isomorphic");
				} else {
					System.out.println(s1 + " and " + s2 + " are not Isomorphic");
				}
			}
		} else {
			System.out.println(s1 + " and " + s2 + " are not Isomorphic");
		}
	}
}
                /* ............... END ............... */
        

Output

paper and title are Isomorphic
foo and app are Isomorphic
foo and bar are not Isomorphic
turtle and tletur are Isomorphic
add and egg are Isomorphic
br and rr are not Isomorphic

Notes:

  • Two Strings S1 and S2 are said to be Isomorphic, if each character in the String S1 can be replaced with another character to get the String S2.

Tags

Check Isomorphic Strings, Java, String

Similar Programs Chapter Last Updated
Java StringBuffer CharAt String Handling 27-05-2017
Java StringBuilder EnsureCapacity String Handling 27-05-2017
Java StringBuffer Capacity Example String Handling 27-05-2017
Java Character At Particular Index String Handling 16-05-2017
Java Convert String To Array Example String Handling 16-05-2017
Java String Trim Method String Handling 15-05-2017
Java String Character Case Check String Handling 15-05-2017
Java Find All Substrings Of String String Handling 14-05-2017
Java String Conversion Using ValueOf String Handling 30-03-2017
Immutable String In Java String Handling 24-03-2017
Java Float To String Using toString() String Handling 05-11-2016
Java Program To Convert Integer To String Using toString() String Handling 05-11-2016
Java Reverse String Using Stack String Handling 24-10-2016
Java Integer To String Conversion String Handling 21-10-2016
Java String Unicode Code Point Example String Handling 28-08-2016
Concatenate Strings In Java Example String Handling 21-08-2016
String Optimization In Java String Handling 21-08-2016
Java String Split Example String Handling 20-08-2016
Java String Search String Handling 20-08-2016
Java String Replace String Handling 20-08-2016
Java String Remove Character Example String Handling 20-08-2016
Java String Last Occurance String Handling 20-08-2016
Java String Compare Example String Handling 20-08-2016
String Initialization In Java Example String Handling 20-06-2016
StringBuffer SubString In Java String Handling 09-05-2016
StringBuffer Reverse In Java String Handling 09-05-2016
StringBuffer Insert In Java String Handling 09-05-2016
StringBuffer Append In Java String Handling 09-05-2016
Java String isEmpty() String Handling 01-05-2016
StringBuilder reverse() Method In Java String Handling 01-05-2016

1 2 3