- 題目:實現strstr函式。
- 這個函式原型 strstr(char *a, char *b),在a中是否包含b這個字串,包含返回第一個子串的位置,否則返回NULL。
- 思路:其實這個就是找子串的問題。特殊情況,當b為空的時候,直接返回a;當b不為空的時候,指定start指標,通過兩次迴圈,逐一對strstr中的子串和b進行匹配,如果b走到末尾,表示找到,start指標指向開始位置,否則start繼續往前,
例子:abcdefg bcd
start指向a的位置, 將abcdefg和bcd比較 ->否
start前進,指向b的位置, 將bcdefg和bcd比較 -> 是 返回start指標。 - 程式碼
class Solution { public: char *strStr(char *haystack, char *needle) { if (!*needle) return haystack; char *start = haystack; char *temp1 = haystack, *temp2 = needle; while (*start){ temp1 = start; temp2 = needle; while (*temp2 && temp1 && !(*temp2 - *temp1)) temp2++, temp1++; if (!*temp2) return start; start++; } return NULL; } };
(函式)實現strstr函式
相關文章
- [LeetCode] Implement strStr() 實現strStr()函式LeetCode函式
- strstr函式函式
- C 庫函式 - strstr()函式
- 5. PHP 函式 strstr ()PHP函式
- C語言-字串函式的實現(五)之strstrC語言字串函式
- 子串查詢函式strstr函式
- PHP字串函式之 strstr stristr strchr strrchrPHP字串函式
- JavaScript的迭代函式與迭代函式的實現JavaScript函式
- 函式節流、函式防抖實現原理分析函式
- MySQL排名函式實現MySql函式
- MySQL分析函式實現MySql函式
- fcntl函式實現dup函式
- 實現call函式,手寫Function.prototype.call函式函式Function
- (函式分治法)實現pow函式(x的y次方冪)函式
- 不使用日期函式實現ADD_MONTHS函式功能函式
- 一個有用的函式-實現dump函式的convert!函式
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- async 函式的實現原理函式
- 去抖函式的實現函式
- Golang實現PHP常用函式GolangPHP函式
- Go實現PHP常用函式GoPHP函式
- bind 函式的實現原理函式
- mysql實現開窗函式MySql函式
- atoi函式簡單實現函式
- 實現c中memcpy函式memcpy函式
- 【面試】shuffle函式的實現面試函式
- js實現函式過載JS函式
- Oracle 函式大全(字串函式,數學函式,日期函式,邏輯運算函式,其他函式)Oracle函式字串
- 使用函式式實現觀察者模式模式函式模式
- 【函式式 Swift】函式式思想函式Swift
- JS 利用高階函式實現函式快取(備忘模式)JS函式快取模式
- c語言中通過函式指標實現函式過載C語言函式指標
- 不使用日期函式實現ADD_MONTHS函式功能(二)函式
- python中id()函式、zip()函式、map()函式、lamda函式Python函式
- 【函式】Oracle函式系列(2)--數學函式及日期函式函式Oracle
- Python 擴充之特殊函式(lambda 函式,map 函式,filter 函式,reduce 函式)Python函式Filter
- [PHP原始碼閱讀]strpos、strstr和stripos、stristr函式PHP原始碼函式
- PHP 中 strpos、strstr 和 stripos、stristr 函式原始碼解析PHP函式原始碼