[leetcode]Implement strStr().
阿新 • • 發佈:2018-12-19
Return the index of the first occurrence of needle in haystack, or -1if needle is not part of haystack.
Example 1:
Input: haystack = "hello", needle = "ll" Output: 2
Clarification:
What should we return when needle
is an empty string? This is a great question to ask during an interview.
For the purpose of this problem, we will return 0 when needle
分析:
返回haystack中首次出現needle的索引,不存在則返回-1,needle為空則返回0。依次比較j與i中字元,若完全相同,則返回相應的下標,否則繼續與i中下一字元比較,直至遍歷完i中所有字元。
class Solution { public: int strStr(string haystack, string needle) { if(needle.size() == 0) return 0; if(haystack.size() < needle.size()) return -1; int i = 0;//haystack下標 int j = 0;//needle下標 while(i <= haystack.size()-1 && j <= needle.size()-1) { if(haystack[i] == needle[j]) { i++; j++; } else { i = i-j+1; j = 0; } } if(j == needle.size()) return i-j; else return -1; } };