Input: haystack = "hello", needle = "ll"
Output: 2
Input: haystack = "aaaaa", needle = "bba"
Output: -1
class Solution {
func strStr(_ haystack: String, _ needle: String) -> Int {
if(needle.count == 0 ) {
return 0;
}
if(haystack.count == 0) {
return -1;
}
if(needle.count > haystack.count) {
return -1;
}
let chars = Array(haystack);
let needleChars = Array(needle);
for i in 0..<chars.count - needleChars.count + 1 {
let char = chars[i];
var iNeedle = false;
if(char == needleChars[0]) {
iNeedle = true;
for j in 1..<needleChars.count {
if(chars[j + i] != needleChars[j]) {
iNeedle = false;
}
}
}
if(iNeedle == true) {
return i;
}
}
return -1;
}
}
class Solution {
func strStr(_ haystack: String, _ needle: String) -> Int {
var output = -1
var chars = Array(haystack)
var needleChars = Array(needle)
if(chars.count == 0) {
if(needleChars.count != 0) {
return -1
} else {
return 0
}
} else if(chars.count == 0 || needleChars.count == 0) {
return 0
} else if(needleChars.count > chars.count) {
return -1
}
for i in 0..<chars.count {
let char = chars[i]
if(char == needleChars[0]) {
var isMatch = true
var j = 1
while (j < needleChars.count) {
if(i + j >= chars.count) {
return -1
}
let charA = chars[i + j]
let charB = needleChars[j]
if(charA != charB) {
isMatch = false
break
}
j += 1
}
if(isMatch == true) {
return i
}
}
}
return -1
}
}