← Strings

Implement strStr

Easy
Python
def str_str(h,n):
    if not n: return 0
    for i in range(len(h)-len(n)+1):
        if h[i:i+len(n)]==n: return i
    return -1
Java
public int strStr(String h,String n){
    if(n.isEmpty()) return 0;
    for(int i=0;i<=h.length()-n.length();i++)
        if(h.substring(i,i+n.length()).equals(n)) return i;
    return -1;
}

Key Insight

Python slicing and == clean. Java needs substring() and equals().

Python → Java Differences

  • Python slicing vs substring()
  • == vs .equals()
  • Sliding window identical
Python
def str_str(h,n):
    if not n: return 0
    for i in range(len(h)-len(n)+1):
        if h[i:i+len(n)]==n: return i
    return -1
Java
public int strStr(String h,String n){
    if(n.isEmpty()) return 0;
    for(int i=0;i<=h.length()-n.length();i++)
        if(h.substring(i,i+n.length()).equals(n)) return i;
    return -1;
}

Algorithm Steps

1. Slide window of needle length
2. Compare at each position