蓝桥杯省赛 人物相关性分析

【题目】人物相关性分析
在这里插入图片描述
思路:我是这么觉得:先把字符串按空格分割成String[],把"Alice"和"Bob"和"Alice."和"Bob."放到HashMap的键上。每次去比较就行,我感觉这样就简单点了。我写了,但是蓝桥杯的样例太古怪了,我也不知道自己的对不对,放上来大家帮我看看。

import java.util.HashMap;
import java.util.Scanner;

/**
 * 人物相关性分析
 */
public class Main07 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int k = sc.nextInt();
        String str = sc.nextLine();
        String[] nums = str.split(" ");
        HashMap<String, Integer> map = new HashMap<>();
        map.put("Alice", 0);
        map.put("Alice.", 1);
        map.put("Bob", 0);
        map.put("Bob.", 1);
        int len=0;
        int ans=0;
        for(int i=0;i<nums.length;i++) {
            if(map.containsKey(nums[i])) {
                for(int j=i+1;j<nums.length;j++) {
                    if(map.containsKey(nums[j])&&len<=k) {
                        len+=nums[j].length()+map.get(nums[j])+2;  //string长度加,看有没有“.”有加1没有加0,再加两个空格
                        ans++;
                    }else{
                        len+=nums[j].length()+2;
                    }
                    if(len>k) {
                        len=0;
                        break;
                    }
                }
            }
        }
        System.out.println(ans);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值