package com.anuragkapur.pie.arraysandstrings; import java.util.HashMap; import java.util.Map; /** * @author anuragkapur */ public class RemoveSpecifiedChars { /** * Running time: O(n), assuming average case with HashMap lookups completing in O(1) * Space complexity: O(n), uses extra data structure * @param str * @param remove * @return */ public static String remove(String str, String remove) { Map<Character, Boolean> removeMap = new HashMap<>(); for (char ch : remove.toCharArray()) { removeMap.put(ch, true); } StringBuilder builder = new StringBuilder(); for (char ch: str.toCharArray()) { if (!removeMap.containsKey(ch)) { builder.append(ch); } } return builder.toString(); } }