Q2. Write code to remove the duplicate characters in a string without using any additional buffer.
Answer:
* As strings are immutable in java so we have to generate a new string.
import java.util.HashSet;
import java.util.Set;
public class Arrays2 {
public static String removeDuplicates(String s) {
if (s == null) {
return null;
}
StringBuilder r = new StringBuilder("");
Set<Character> chars = new HashSet<Character>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (!chars.contains(c)) {
chars.add(c);
r.append(c);
}
}
return r.toString();
}
public static void main(String[] args) {
String s1 = "aaaa";
String s2 = "aabbcc";
String s3 = "abcd";
String s4 = "ababab";
String s5 = "";
String s6 = null;
String s7 = "a b c";
System.out.println(removeDuplicates(s1));
System.out.println(removeDuplicates(s2));
System.out.println(removeDuplicates(s3));
System.out.println(removeDuplicates(s4));
System.out.println(removeDuplicates(s5));
System.out.println(removeDuplicates(s6));
System.out.println(removeDuplicates(s7));
}
}
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.