题解 | #牛群的信息传递#
牛群的信息传递
https://www.nowcoder.com/practice/0130cb88968a441b9eedbc103466d2bf
双指针遍历两个字符串,注意每次字串无法匹配的时候,字串要重新从0开始遍历。最后完全匹配的时候需要减去字串的长度,得到的就是子字符串在主串的起始位置了。
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param message string字符串 * @param keyword string字符串 * @return int整型 */ public int findKeyword (String message, String keyword) { // write code here char[] m = message.toCharArray(); char[] k = keyword.toCharArray(); int j = 0; for(int i=0; i<m.length; i++){ int left = i; //使用left变量记录此时的i坐标 while(j<k.length){ if(m[left++]==k[j++]){ if(j==k.length){ return left-k.length; } }else{ j=0; //字串重新遍历 break; } } } return -1; } }