#L4288. 「KTSC 2020 R1」字符串查找
「KTSC 2020 R1」字符串查找
题目描述
题目译自 2020년도 국제정보올림피아드 대표학생 선발고사 - 1차 선발고사 T1 「문자열 찾기」
对于由小写英文字母组成的两个字符串 和 ,当满足以下条件时,称这两个字符串实际上相同:
- 和 的长度相同。
- 对于所有可能的整数 和 ,如果 的第 个字符和第 个字符相同,则 的第 个字符和第 个字符也相同。
- 对于所有可能的整数 和 ,如果 的第 个字符和第 个字符不同,则 的第 个字符和第 个字符也不同。
例如, 和 是实际上相同的字符串。但是, 和 不是实际上相同的字符串。
编写一个程序,接收字符串 和 ,计算 的连续子字符串中与 实际上相同的子字符串的数量。
例如, 和 , 中从左到右的子字符串 , , , , 有 个与 实际上相同。
实现细节
你需要实现以下函数:
int findP(char T[], char P[], int N, int M);
- 是长度为 的数组(字符串)。
- 是长度为 的数组。
- 和 分别存储了长度为 和 的小写英文字母字符串。 和 的最后一个位置存储了
\0。 findP函数返回 的连续子字符串中与 实际上相同的子字符串的数量。
你需要提交一个名为 match.cpp 的文件,该文件中实现以下函数:
int findP(char T[], char P[], int N, int M);
该函数应按照上述描述工作。当然,你可以创建其他函数并在内部使用。提交的代码不应执行输入输出操作或访问其他文件。
示例评测程序
示例评测程序按以下格式读取输入:
- 第 行:字符串
- 第 行:字符串
示例评测程序将输出你的代码中 findP() 函数返回的值。
样例
| 函数调用 | 返回值 |
|---|---|
findP("abababbab", "pqp", 9, 3) |
数据范围与提示
对于所有输入数据,满足:
详细子任务附加限制及分值如下表所示。
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| 1 | 8 | |
| 2 | 5 | |
| 3 | 12 | |
| 4 | 75 | 无附加限制 |