fangfa
描述
对于一个给定的 source
字符串和一个 target
字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0
开始)。如果不存在,则返回 -1
。
输入:
source = "source"
target = "target"
输出
-1
解释:
如果source里没有包含target的内容,返回-1
样例 2:
输入:
source = "abcdabcdefg"
target = "bcd"
输出:
1
class Solution {
public:
/**
* @param source:
* @param target:
* @return: return the index
*/
int strStr(string &source, string &target) {
// Write your code here
int sn=source.size();
int tn=target.size();
int i,j;
int loc=0;
bool f=false;
char s[sn];
strcpy(s,source.c_str());
char t[tn];
strcpy(t,target.c_str());
i=0;
j=0;
while(i<=sn&&j<=tn){
if(s[i]!=t[j]){
f=false;
i=++loc;
j=0;
continue;
}
if(j==tn-1){
return loc;
}
//s[i]==t[j]:
if(!f){//找到新开头
f=true;
loc=i;//记录新开头
}
i++;
j++;
}
if(!f||j<tn-1){
return -1;
}
else{return loc;}
}
};