careercup1.3: remove duplicate without extra space.
First, ask yourself, what does the interviewer mean by an additional bu#er? Can we use an
additional array of constant size?
Algorithm—No (Large) Additional Memory:
1. For each character, check if it is a duplicate of already found characters.
2. Skip duplicate characters and update the non duplicate characters.
Time complexity is O(N2)
Test Cases:
1. String does not contain any duplicates, e.g.: abcd
2. String contains all duplicates, e.g.: aaaa
3. Null string
4. String with all continuous duplicates, e.g.: aaabbb
package careercup; import java.util.Arrays; public class test1 { public static String checkUnique(char[] s) { if(s.length<=1) return new String(s); int tail = 1; for(int i=1; i<s.length; i++){ int j; for(j=0; j<tail; j++){ if(s[i]==s[j]){ break; } } if(j==tail){ s[tail++] = s[i]; } } return new String(s, 0, tail); } public static void main(String[] args){ String s = "abcafasdfgasghfgjkghkfgkffasfasf"; System.out.println( checkUnique(s.toCharArray()) ); } }