[leetcode/lintcode 题解] 滴滴面试题:字符删除

300 阅读1分钟

【题目描述】

输入两个字符串,从第一字符串中删除第二个字符串中所有的字符

在线评测地址: LintCode领扣

样例 :

输入: str=”They are students”,sub=”aeiou”

输出: ”Thy r stdnts”

【题解】

用一个数组储存第二串中出现过的元素,然后遍历第一数组,将未出现在第二数组中的元素保存,最后输出答案

    /**
     * @param str: The first string given
     * @param sub: The given second string
     * @return: Returns the deleted string
     */
    public String CharacterDeletion(String str, String sub) {
        int[] tmp = new int[256];
        for (int i = 0; i < sub.length(); i++) {
            tmp[sub.charAt(i)]++;
        }
        StringBuffer ans = new StringBuffer("");
        for (int i = 0; i < str.length(); i++) {
            if (tmp[str.charAt(i)] == 0) {
                ans.append(Character.toString(str.charAt(i)));
            }
        }
        return ans.toString();
    }
}

更多语言代码参见 leetcode/lintcode 题解