20241104--java--算法题--字符串中的通配符

一、题目描述

在广告平台中,为了给广告主一定的自由性和效率,允许广告主在创造标题的时候以通配符的方式进行创意提交。线上服务的时候,会根据用户的搜索词触发的 bidword 对创意中的通配符(通配符是用成对 {} 括起来的字符串,可以包含 0 个或者多个字符)进行替换,用来提升广告投放体验。例如:“{末日血战} 上线送 SSR 英雄,三天集齐无敌阵容!”,会被替换成“帝国时代游戏下载上线送 SSR 英雄,三天集齐无敌阵容!”。给定一个含有通配符的创意和n个标题,判断这句标题是否从该创意替换生成的。

二、测试样例

在这里插入图片描述

三、代码

package com.kong.demo3;

/**
 * @author kongdeming
 * @date 2024/11/4
 **/
import java.util.ArrayList;
import java.util.List;

public class Main {
   
    public static String solution(int n, String template_, String[] titles) {
   
        // 将通配符替换为正则表达式中的.*
        String pattern = template_.replaceAll("\\{.*?\\}", ".*");
        List<String> results = new ArrayList<>();
        for (String title : titles) {
   
            if (title.matches(pattern)) {
   
                results.add("True");
            } else {
    
                results.add("False"); 
            }

        }
        StringBuilder sb = new StringBuilder(); 
        for (int i = 0; i < results.size(); i++) {
    
            sb.append(results.get(i)); 
            if (i < results.size() - 1) {
    
                sb.append
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值