题解 | #牛群的信息传递#
牛群的信息传递
https://www.nowcoder.com/practice/0130cb88968a441b9eedbc103466d2bf
考察的知识点:字符串;
解答方法分析:
- 使用两个循环,外层循环遍历字符串的每个字符位置,内层循环逐个比较当前位置开始的子串与关键字的对应字符是否相等。如果匹配成功,则内层循环会一直进行到关键字的末尾。如果匹配失败,则内层循环会提前结束,继续外层循环的下一个字符位置。
- 当内层循环结束时,通过判断变量
j
是否等于关键字长度m
,来确定是否找到了关键字。如果j
等于m
,说明所有字符都匹配成功,返回当前位置i
即为关键字的起始位置。如果外层循环结束后还没有找到关键字,则返回-1表示失败。
所用编程语言:C++;
完整编程代码:↓
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param message string字符串 * @param keyword string字符串 * @return int整型 */ int findKeyword(string message, string keyword) { int n = message.length(); int m = keyword.length(); for (int i = 0; i <= n - m; i++) { int j = 0; while (j < m && message[i + j] == keyword[j]) { j++; } if (j == m) { return i; } } return -1; } };