Created
June 11, 2015 20:23
-
-
Save thmain/ae365bdad4e503877ed9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//This Program is to find out whether String contains all the unique characters | |
//With out using any additional data structures | |
public class UniqueCharString { | |
private String ip; | |
public UniqueCharString(String ip) { | |
this.ip = ip; | |
} | |
// method 1 : When characters are not ASCII but could be anything alphabets | |
// or special characters | |
// Time Complexity : O(n) | |
// Space Complexity : O(1) | |
// | |
public Boolean UniChars() { | |
Boolean[] bln = new Boolean[256]; | |
for (int i = 0; i < 256; i++) { | |
bln[i] = false; | |
} | |
for (int i = 0; i < ip.length(); i++) { | |
char a = ip.charAt(i); | |
if (bln[a] == true) { | |
return false; | |
} else { | |
bln[a] = true; | |
} | |
} | |
return true; | |
} | |
// method 2: Sort the array and do the linear scan to find out whether | |
// string | |
// contains unique elements or not | |
// Time Complexity : O(nLogn) | |
// Space Complexity : O(n) | |
public Boolean UniqueCharSorting() { | |
char[] a = ip.toCharArray(); | |
java.util.Arrays.sort(a); | |
String tmp = new String(a); | |
for (int i = 1; i < tmp.length(); i++) { | |
char t = tmp.charAt(i - 1); | |
if (t == tmp.charAt(i)) { | |
return false; | |
} | |
} | |
return true; | |
} | |
public static void main(String args[]) { | |
String a = "Sumit_Jain"; | |
UniqueCharString u = new UniqueCharString(a); | |
System.out.println("Method 1 : Does String ' " + a | |
+ " ' has all unique characters :" + u.UniChars()); | |
a = "Sumit"; | |
u = new UniqueCharString(a); | |
System.out.println("Method 1 : Does String ' " + a | |
+ " ' has all unique characters :" + u.UniChars()); | |
a = "Sumit_Jain"; | |
u = new UniqueCharString(a); | |
System.out.println("Method 2 : Does String ' " + a | |
+ " ' has all unique characters :" + u.UniqueCharSorting()); | |
a = "Sumit"; | |
u = new UniqueCharString(a); | |
System.out.println("Method 2 : Does String ' " + a | |
+ " ' has all unique characters :" + u.UniqueCharSorting()); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment