演算法strstr實現
-
#include
- const char *my_strstr(const char *str, const char *sub_str)
- {
- for(int i = 0; str[i] != '\0'; i++)
- {
- int tem = i; //tem保留主串中的起始判斷下標位置
- int j = 0;
- while(str[i++] == sub_str[j++])
- {
- if(sub_str[j] == '\0')
- {
- return &str[tem];
- }
- }
- i = tem;
- }
- return NULL;
- }
- int main()
- {
- char *s = "1233345hello";
- char *sub = "345";
- printf("%s\n", my_strstr(s, sub));
- return 0;
- }
點選(此處)摺疊或開啟
- int strstr(char *string, char *substring)
- {
-
if (string == NULL || substring == NULL)
-
return -1;
-
- int lenstr = strlen(string);
- int lensub = strlen(substring);
-
-
if (lenstr < lensub)
-
return -1;
-
-
int len = lenstr - lensub;
-
for (int i = 0; i <= len; i++) //複雜度為 O(m*n)
- {
- for (int j = 0; j < lensub; j++)
-
{
-
if (string[i+j] != substring[j])
-
break;
-
}
-
if (j == lensub)
-
return i + 1;
-
}
-
return -1;
- }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29012686/viewspace-1145082/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 實現 strStr()
- [LeetCode] Implement strStr() 實現strStr()函式LeetCode函式
- 每日一練(37):實現 strStr()
- (函式)實現strstr函式函式
- LeetCode-028-實現 strStr()LeetCode
- [C練習]程式設計實現strstr程式設計
- Leetcode--28. 實現strStr()(JS版)LeetCodeJS
- C語言-字串函式的實現(五)之strstrC語言字串函式
- strstr函式函式
- Leetcode Implement strStr()LeetCode
- C 庫函式 - strstr()函式
- micropather實現A*演算法演算法
- LFU演算法實現演算法
- ARC演算法實現演算法
- 5. PHP 函式 strstr ()PHP函式
- Leetcode 28 Implement strStr()LeetCode
- Leetcode-Implement strStr()LeetCode
- Implement strStr() leetcode javaLeetCodeJava
- Go 實現雪花演算法Go演算法
- 排序演算法 Java實現排序演算法Java
- php演算法實現(一)PHP演算法
- 排序演算法Java實現排序演算法Java
- 雪花演算法的實現演算法
- golang洗牌演算法實現Golang演算法
- Mahout實現的演算法演算法
- java實現Bitmap演算法Java演算法
- KMP演算法 Java實現KMP演算法Java
- 演算法-排序演算法思想及實現演算法排序
- leetcode28_Implement strStr()LeetCode
- LeetCode-Implement strStr()-KMPLeetCodeKMP
- 子串查詢函式strstr函式
- pangrank演算法--PageRank演算法並行實現演算法並行
- 排序演算法-Java實現快速排序演算法排序演算法Java
- Svm演算法原理及實現演算法
- FM演算法python實現演算法Python
- JavaScript實現常用排序演算法JavaScript排序演算法
- python實現冒泡演算法Python演算法
- PHP實現漢諾塔演算法PHP演算法