【leetcode】28.(Easy)Implement strStr()
阿新 • • 發佈:2018-11-10
解題思路:
這道題的意思就是找到字串中一個子串的起始位置,沒有這個子串的話返回-1。
我的做法就是簡單的蠻力法,首先找到第一個匹配的字元,然後再進一步進行判決
提交程式碼:
class Solution {
public int strStr(String haystack, String needle) {
if(haystack==null||needle==null) return -1;
if (needle.equals("")) return 0;
int pos = -1, startpos = 0, p1,p2 = 0;
while (startpos <= (haystack.length() - needle.length())) {
// 找到第一個匹配的字元
if (haystack.charAt(startpos) == needle.charAt(0)) {
pos = startpos;
p1=startpos;
p2=0;
while (p1 < haystack.length() && p2 < needle.length()
&& haystack.charAt(p1) == needle. charAt(p2)) {
p1++;
p2++;
}
if (p2 == needle.length())
return pos;
}
startpos++;
}
return -1;
}
}
執行結果: