对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1。
您在真实的面试中是否遇到过这个题? Yes
说明
在面试中我是否需要实现KMP算法?
不需要,当这种问题出现在面试中时,面试官很可能只是想要测试一下你的基础应用能力。当然你需要先跟面试官确认清楚要怎么实现这个题。
样例
如果 source = “source” 和 target = “target”,返回 -1。
如果 source = “abcdabcdefg” 和 target = “bcd”,返回 1。
class Solution {
/**
* Returns a index to the first occurrence of target in source,
* or -1 if target is not part of source.
* @param source string to be scanned.
* @param target string containing the sequence of characters to match.
*/
public int strStr(String source, String target) {
//write your code here
if (null == source || null == target){
return -1;
}
if (source.indexOf(target) >= 0) {
return source.indexOf(target);
}
return -1;
}
}
思考过程步骤如下:
1. 优先排除异常source或target为null场景,返回-1
2. 代码是否支持source,target为空串(“”)场景
3. 剩下的就是正常场景