首页 > 试题广场 >

???

[编程题]???
  • 热度指数:892 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
有一个字符串 s ,它由小写英文字母和可能是零个或多个的字符 `?` 组成。

旺仔哥哥想将每个 `?` 改成小写英文字母,使字符串 t 成为字符串 s 的子序列(不一定连续)。

输出任何这样的可能的改写后的字符串,如果没有符合条件的字符串存在,则直接报告不可能即可。

输入描述:
第一行包含一个整数 T ( 1 \leq T \leq 10^4 ) - 测试用例数。

每个测试用例的第一行包含一个字符串 s ( 1 \leq |s| \leq 2 \cdot 10^5,且 s 仅由小写英文字母和 ```?``` 组成。

每个测试用例的第二行包含一个字符串 t ( 1 \leq |t| \leq |s| 且 t 仅由小写英文字母组成)--该字符串本应是字符串 s 的子序列。

所有测试用例中 |s| 的总和不超过 2 \cdot 10^5 ,其中 |x| 表示字符串 x 的长度。


输出描述:
对于每个测试用例,如果不存在语句中描述的字符串,则输出 "NO"(不带引号)。

否则,输出 "YES"(不带引号)。然后,输出一行--符合所有条件的字符串。

如果可能有多个答案,您可以输出其中任何一个。
示例1

输入

4
??a???e????ba
efe
cbe??????e?b???b
be
a???bf?????
deadaeefb
f???bf?efc?eeebac?
afbacea

输出

YES
efaeaaeaaaaba
YES
cbeaaaaaaeabaaab
NO
YES
fafbbfaefceeeebaca
头像 丨阿伟丨
发表于 2025-09-01 10:34:57
题目链接 ??? 题目描述 给定一个由小写英文字母和 '?' 组成的字符串 ,以及一个只由小写英文字母组成的字符串 。 任务是将 中的每一个 '?' 替换成一个小写英文字母,使得 是替换后 的一个子序列。 如果存在这样的构造方式,输出 "YES" 和任意一个构造后的 ;如果 展开全文
头像 冷艳的西红柿刷牛客
发表于 2025-11-13 10:40:28
#include <iostream> #include <string> #include <cstring> using namespace std; const int N = 2e5 + 5; int main() { int t; cin &g 展开全文
头像 Silencer76
发表于 2025-08-12 18:10:43
题目链接 字符串子序列构造 题目描述 给定一个字符串 ,它由小写英文字母和若干个 '?' 字符组成。另外给定一个字符串 ,它只由小写英文字母组成。 你需要将 中的每一个 '?' 替换成一个小写英文字母,使得字符串 成为新字符串 的一个子序列。 请输出任意一个满足条件的字符串 ;如果不存在这样的 展开全文
头像 牛客242693846号
发表于 2025-07-31 14:13:03
T = int(input()) for _ in range(T): s = list(input()) t = list(input()) p1 = 0 # s的指针 p2 = 0 # t的指针 while p1 < len(s) and p 展开全文
头像 牛客937040252号
发表于 2025-11-11 23:11:16
# 幸亏题目提示了双指针,不然可能想到动态规划去了 import sys lines = [] for line in sys.stdin: line = line.strip() lines.append(line) num = int(lines[0]) def judge 展开全文