【每日一题】day1_01 删除公共字符

牛客网:删除公共字符 

题目描述

输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.” 

输入描述:

每个测试输入包含2个字符串

输出描述:

输出删除后的字符串

示例1

输入

They are students.

aeiou

输出 

Thy r stdnts. 

解题思路

首先创建两个字符串str1、str2,创建HashMap<Character,Interger>用于存放字符及其对应的次数,初始字符值为null,第一步遍历第二个字符串,判断拿到的字符是否存在于map中,如果拿到的字符为null,则放入map中并对应次数为1次,如果拿到的字符不为null,则再让该字符的次数加1,第二步遍历第一个字符串,在map中找到对应字符,如果该字符为null,即输出到新字符串ret中,最后打印字符串ret。

实现代码

import java.util.*;

public class Main{

public static void main(String[] args)
        {
            Scanner scan = new Scanner(System.in);
            String str1 = scan.nextLine();
//They are students.
            String str2 = scan.nextLine();
//aeiou
            HashMap<Character,Integer> map = new HashMap<>();
            //1、遍历第二的字符串
            for(int i = 0;i < str2.length();i++) {
//              当前拿到的字符判断之前是否存在于map当中
                if(map.get(str2.charAt(i)) == null) {
                    map.put(str2.charAt(i), 1);
                }else {
                    map.put(str2.charAt(i), map.get(str2.charAt(i))+1);
                }
            }
            String ret = "";//最后输出的字符串
            //2、遍历第一个字符串
            for(int i = 0;i < str1.length();i++) {
//              当第一个字符串中相对应的字符为空时,即可输出该字符
                if(map.get(str1.charAt(i))== null) {
                    ret += str1.charAt(i);
                }
            }
            System.out.println(ret);
        }
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值