洛谷P1681用C++怎么写
时间: 2023-08-16 14:54:18 浏览: 120
洛谷 P1681 是一个字符串匹配问题,要求给一个字符串,判断是否能够通过删除的某些字符,使得剩下的与目标字符串匹配。
以下是一个 C++ 编写的解答示例:
```cpp
#include <iostream>
#include <string>
using namespace std;
bool matchStrings(string target, string pattern) {
int tLen = target.length();
int pLen = pattern.length();
int tIndex = 0, pIndex = 0;
while (tIndex < tLen && pIndex < pLen) {
if (target[tIndex] == pattern[pIndex]) {
tIndex++;
pIndex++;
} else {
tIndex++;
}
}
return (pIndex == pLen);
}
int main() {
string target, pattern;
cin >> target >> pattern;
if (matchStrings(target, pattern)) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
return 0;
}
```
在上述代码中,我们首先定义了一个名为 `matchStrings` 的函数,该函数接受两个参数:目标字符串 `target` 和匹配字符串 `pattern`。函数使用双指针的方法进行匹配,通过遍历目标字符串和匹配字符串,判断是否能够将目标字符串中的一部分字符删除后得到匹配字符串。
在 `main` 函数中,我们从标准输入中读取目标字符串和匹配字符串,然后调用 `matchStrings` 函数进行匹配判断。最后根据匹配结果输出相应的结果。
请注意,以上代码仅为示例,可能需要根据具体题目要求进行适当修改。同时,为了简化示例,未进行输入验证,请确保输入的字符串符合题目要求。
阅读全文