大家好,我是开车的阿Q,自动驾驶的时代已经到来,没时间解释了,快和阿Q一起上车。作为自动驾驶系统工程师,必须要有最好的C++基础,让我们来一起刷题吧。
题目考察的知识点
字符串处理,字符串匹配。
题目解答方法的文字分析
我们需要在给定的一串信息 message 中查找关键词 keyword 的起始位置下标。如果关键词不存在于信息中,返回 -1。
思路:
- 我们可以使用一个循环遍历信息 message,从第一个字符开始逐个检查是否与关键词 keyword 的第一个字符匹配。
- 如果匹配成功,我们再继续检查 message 和 keyword 的后续字符是否一一匹配。
- 如果匹配成功,说明关键词在信息中找到了,我们返回关键词的起始位置下标。
- 如果匹配不成功,我们继续向后遍历 message 直到找到一个可能的起始位置。
举个例子:假设 message = "hello world",keyword = "world"。
- 我们从 message 的第一个字符 "h" 开始检查,与关键词 "w" 不匹配,继续向后。
- 匹配到 "w",然后检查后续字符,发现匹配了关键词 "world",返回关键词 "world" 的起始位置下标 6。
本题解析所用的编程语言
C++
完整且正确的编程代码
class Solution {
public:
int findKeyword(string message, string keyword) {
int m = message.size();
int n = keyword.size();
for (int i = 0; i <= m - n; i++) {
int j = 0;
while (j < n && message[i + j] == keyword[j]) {
j++;
}
if (j == n) {
return i; // 找到关键词的起始位置
}
}
return -1; // 关键词不存在于信息中
}
};
您的关注、点赞、收藏就是我创作的动力,三连支持阿Q!如果有其他问题,随时都可以问我哦!

京公网安备 11010502036488号