LeetCode-Implement strStr()
2014-03-22 08:13
267 查看
Implement strStr().
Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack.
简单暴力
如果不允许用strlen等库函数,可采用以下代码
char* StrStr(const char *str, const char *target) {
if (!*target) return str;
char *p1 = (char*)str, *p2 = (char*)target;
char *p1Adv = (char*)str;
while (*++p2)
p1Adv++;
while (*p1Adv) {
char *p1Begin = p1;
p2 = (char*)target;
while (*p1 && *p2 && *p1 == *p2) {
p1++;
p2++;
}
if (!*p2)
return p1Begin;
p1 = p1Begin + 1;
p1Adv++;
}
return NULL;
}
Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack.
简单暴力
[code]class Solution { public: char *strStr(char *haystack, char *needle) { if(haystack == NULL || needle == NULL) return NULL; int hLen = strlen(haystack); int nLen = strlen(needle); if(hLen < nLen) return NULL; if(nLen == 0) //"", "" return "" return haystack; for(int i=0;i < hLen-nLen+1; i++){//只要循环hLen-nLen+1次,因为这之后主串的位数少于nLen,也就不可能找到子串了 int index = i; int j = 0; while(j < nLen && haystack[index] == needle[j]){ j++; index++; } if(j == nLen) return haystack+i; } return NULL; } };
如果不允许用strlen等库函数,可采用以下代码
char* StrStr(const char *str, const char *target) {
if (!*target) return str;
char *p1 = (char*)str, *p2 = (char*)target;
char *p1Adv = (char*)str;
while (*++p2)
p1Adv++;
while (*p1Adv) {
char *p1Begin = p1;
p2 = (char*)target;
while (*p1 && *p2 && *p1 == *p2) {
p1++;
p2++;
}
if (!*p2)
return p1Begin;
p1 = p1Begin + 1;
p1Adv++;
}
return NULL;
}
相关文章推荐
- LeetCode(28)--Implement strStr()
- 【leetcode】 Implement strStr()
- LeetCode:Implement strStr()
- Leetcode: Implement strStr()
- LeetCode (Implement strStr())
- LeetCode 28 - Implement strStr()
- LeetCode(28)Implement strStr()
- leetcode 28: Implement strStr()
- LeetCode 28 — Implement strStr()(C++ Java Python)
- Implement strStr()_Leetcode_#28
- [LeetCode][Java] Implement strStr()
- [LeetCode]Implement strStr()
- LeetCode(28)Implement Strstr()
- leetcode[28]Implement strStr()
- LeetCode-Implement strStr()-字符串查找
- LeetCode Implement strStr() 实现strstr()
- [Leetcode]#28 Implement strStr()
- 【leetcode】Implement strStr()
- leetcode 28 Implement strStr()
- [leetcode]Implement strStr()