实现strStr函数的一个C++程序lintcode compile不能完全通过

class Solution {
public:
/**
* 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.
*/
// write your code here
int strStr(string source, string target) {
if (source.length() == 0 || target.length() == 0)
return -1;
for (int i = 0; i < source.length() - target.length()+1; i++) {
int j = 0;
for (j = 0; j < target.length(); j++) {
if (source[i + j] != target[j])
break;
}
if (j == target.length())
return i;
}
return -1;
}
};


 class Solution {
public:
       /**
     * 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.
     */
        // write your code here
int strStr(string source, string target) {
if (source.length() == 0 || target.length() == 0)
return -1;
for (int i = 0; i < (int)(source.length() - target.length()+1); i++) {
int j = 0;
for (j = 0; j < (int)(target.length()); j++) {
if (source[i + j] != target[j])
break;
}
if (j == (int)(target.length()))
return i;
}
return -1;
}
};

int main() {}