-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path59_Easy.cpp
More file actions
68 lines (55 loc) · 1.9 KB
/
Copy path59_Easy.cpp
File metadata and controls
68 lines (55 loc) · 1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include<iostream>
using namespace std;
// 28. Find the Index of the First Occurrence in a String
/***************
Given two strings needle and haystack, return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
Example 1:
Input: haystack = "sadbutsad", needle = "sad"
Output: 0
Explanation: "sad" occurs at index 0 and 6.
The first occurrence is at index 0, so we return 0.
Example 2:
Input: haystack = "leetcode", needle = "leeto"
Output: -1
Explanation: "leeto" did not occur in "leetcode", so we return -1.
***************/
class Solution {
public:
int strStr(string haystack, string needle)
{
// if haystack is smaller we can't find the needle in it
if(haystack.size() < needle.size()) return -1;
int sizeNeedle = needle.size();
int index = 0;
bool yes = true;
// the first char of needle
char first = needle[0];
for(int i = 0; i < haystack.size() - needle.size() + 1; i++) // this loop as we don't over loop to search the first letter
{
if(haystack[i] == first)
{
// now the first letter is same so search till the needle size
index = i;
int j = 0;
int k = i;
while(j < sizeNeedle)
{
// check each letter after the first letter was found
if(haystack[k] == needle[j]) yes = true;
else
{
yes = false;
break;
}
k++;
j++;
}
// if found break.. as we need the index of first occurrence
if(yes == true) break;
}
else yes = false;
}
if(yes) return index;
else return -1;
}
};