Implement strStr()

Problem

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.

Constraints:

  • 1 <= haystack.length, needle.length <= 10^4
  • haystack and needle consist of only lowercase English characters.

Solution

O(n * m) time complexity.

class Solution {
    public int strStr(String haystack, String needle) {
        for (var h = 0; h <= haystack.length() - needle.length(); h++) {
            var ok = true;
            for (var n = 0; n < needle.length(); n++) {
                var ch = haystack.charAt(h + n);
                var cn = needle.charAt(n);
                if (ch != cn) {
                    ok = false;
                    break;
                }
            }
            if (ok) {
                return h;
            }
        }
        return -1;
    }
}

Recent posts from blogs that I like

Last Week on My Mac: When is it safe to upgrade macOS?

If you delay upgrading to the new version of macOS until its x.3 or x.4 release, will that spare you from most of the bugs and problems? Explored with data from Sequoia and Tahoe.

via The Eclectic Light Company

FBI Arrests Executive at Ransomware Negotiation Firm

Agents with the Federal Bureau of Investigation (FBI) on Thursday arrested the co-founder of a Canadian cybersecurity firm in connection with an investigation into the ShinyHunters hacking group that recently relieved the FBI of sensitive data on thousands of agents, multiple sources tell KrebsOnSec...

via Krebs on Security

Software's centaur age may last decades

We are currently living in the age of centaurs (2022-20??). Right now, human engineers paired with AI coding systems are more effective than either by themselves. For future generations of software engineers — human or otherwise — this will be the most significant fact about the current period.

As i...

via Sean Goedecke