2023华为OD机试真题B卷C++【字符匹配】

本文介绍了2023年华为在线开发者(OD)机试的B卷C++题目,重点在于字符匹配算法。题目要求编写程序,依据给定的字符模式,判断字符串数组中哪些字符串与模式完全匹配。模式中的'.'可匹配任意单个字符,'*'匹配零个或多个前一个字符。输入包含多个字符串和字符模式,输出匹配的字符串在数组中的下标。参考代码可供参考。

题目描述

请编写一个程序,根据给定的字符规律,识别字符串数组中与规律匹配的字符串。字符规律中的’.‘可以匹配任意单个字符,’*'可以匹配零个或多个前面的那个元素。匹配意味着要涵盖整个字符串,而不仅仅是部分字符串。

输入描述:

第一行包含多个字符串,以空格分隔。每个字符串由小写字母组成。假设每个字符串的长度满足:1 < 单个字符串长度 < 100,且字符串个数满足:0 < 字符串个数 < 100。

第二行为字符规律,由小写字母、'.‘和’*'组成。假设字符规律的长度满足:1 < 字符规律长度 <= 50。

不需要考虑异常情况。

输出描述:

输出匹配的字符串在数组中的下标,从0开始计数。多个匹配时,按升序排列并用逗号分隔。如果没有匹配的字符串,输出-1。

示例:

输入:

ab aab

.*

输出:

0,1

参考代码

#include <iostream>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AlgorithmHero

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值