(LeetCode每日一刷10)實現 strStr() 函式
阿新 • • 發佈:2018-11-17
題目描述:
給定一個 haystack 字串和一個 needle 字串,在 haystack 字串中找出 needle 字串出現的第一個位置 (從0開始)。如果不存在,則返回 -1。
示例:
示例 1:
輸入: haystack = "hello", needle = "ll" 輸出: 2
示例 2:
輸入: haystack = "aaaaa", needle = "bba" 輸出: -1
說明:
當 needle
是空字串時,我們應當返回什麼值呢?這是一個在面試中很好的問題。
對於本題而言,當 needle
我提交的程式碼:
class Solution { public: int strStr(string haystack, string needle) { if (needle.empty()) { return 0; } int i,j; int haystack_length = haystack.size(); int needle_length = needle.size(); for (i = 0; i < haystack_length; ++i) { if (haystack[i] == needle[0]) { if (haystack_length - i < needle_length) { return -1; } else { if (needle_length == 1) { return i; } for (j = 1; j < needle_length; ++j) { if (haystack[i + j] != needle[j]) { break; } if(j == needle_length - 1) { return i; } } } } } return -1; } };