最近某地连续发生了多起盗窃案件,根据监控和路人提供的线索得知,这是一个犯罪团伙。并且还知道这个犯罪团伙中每个人的身高、体重、年龄。警察想知道这个犯罪团伙中的每个人是不是本市的(如果本市有这个特征的人效

破案问题:

最近某地连续发生了多起盗窃案件,根据监控和路人提供的线索得知,这是一个犯罪团伙。并且还知道这个犯罪团伙中每个人的身高、体重、年龄。警察想知道这个犯罪团伙中的每个人是不是本市的(如果本市有这个特征的人效视为是本市的)。但本市人口太多,又不能一个一个排查。警察又急需这条信息来缩小范围,所以警察特来找到聪明的你来帮忙解决这个棘手的问题。

输入格式

第一行将会输入两个数字n(1< n <2*10)和m(1m <10)n代表本市的人口数目m 代表犯罪团伙的数量

后面 n 行每行有3个数字代表本市每个人的身高、体重、年龄。然后会有 行每行有3个数字代表犯罪团伙每个人的身高、体重、年龄。

输出格式

输出mn行,每行输出一个yes”或“no"yes~代表这个罪犯是本市的,“no-代表这个罪犯不是本市的

样例输入

3 2
166 50 30
178 60 23
132 40 15
167 50 30
178 60 23

样例输出

no
yes

代码实现如下所示:

import java.util.Scanner;

public class test15 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入本市人口数目:");
        int n=scanner.nextInt();
        System.out.println("请输入犯罪人口数目:");
        int m=scanner.nextInt();
        scanner.nextLine(); // 添加该行以消耗nextInt()方法留下的换行符---导致第一个存储在数据中的元素是换行符
        String[] strings=new String[n+m];
        for(int i=0;i<(m+n);i++){
            strings[i]=scanner.nextLine();
        }
        //将两个犯罪团伙的信息与所有市民的信息进行比较
        for(int j=n;j<(m+n);j++) {
            boolean found = false;
            for(int i=0;i<n;i++){
                //string在进行比较时,应使用equals比较其内容是否相等而不是使用==比较其引用地址是否相等
                if(strings[j].equals(strings[i])){
                    //注意:我们需要比较的是最后两个字符串是否与前三个字符串中任意的一个相等,当拿到一个比较的结果后就需要跳出循环而不是继续比较
                    found = true;
                    break;
                }
            }
            if(found){
                System.out.println("Yes");
            }else{
                System.out.println("No");
            }
        }
    }
}

输出如下所示:

请输入本市人口数目:
3
请输入犯罪人口数目:
2
166 50 30
178 60 23
132 40 15
167 50 30
178 60 23
No
Yes
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从未止步..

谢谢你的打赏,我会继续努力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值