大家好,我是开车的阿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!如果有其他问题,随时都可以问我哦!