strStr()関数を実装します。
干し草の山の文字列と針の文字列を指定して、干し草の山の文字列で針の文字列が出現する最初の位置を見つけます(0から開始)。存在しない場合は-1を返します。
例1:
入力:haystack = "hello"、needle = "ll"
出力:2
例2:
入力:haystack = "aaaaa"、needle = "bba"
出力:-1
説明:
針が空の文字列の場合、どのような値を返す必要がありますか?これはインタビューで良い質問です。
この問題では、針が空の文字列の場合は0を返す必要があります。これは、C言語のstrstr()およびJavaのindexOf()の定義と一致しています。
出典:LeetCode
リンク:https ://leetcode-cn.com/problems/implement-strstr
著作権は控除ネットワークに属しています。商用転載の正式な許可書に連絡し、非商用転載の出典を明記してください。
kmpアルゴリズムを使用して簡単に解決できます
class Solution {
public int strStr(String haystack, String needle) {
int hLen = haystack.length(), nLen = needle.length();
for (int i = 0; i <= hLen - nLen; i++){ // 等于,适用于两者长度相等的情况下(包含都为 ”“)
int j = 0;
for (;j < nLen; j++){
if (haystack.charAt(i + j) != needle.charAt(j)) {
break;
}
}
if (j == nLen){
return i;
}
}
return -1;
}
};