Advertisement
aguzs

String Matching

Oct 14th, 2022
1,083
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.05 KB | None | 0 0
  1. '''
  2. - haystack: string
  3. - needle: string yang dicari
  4. '''
  5. def string_contains(haystack: str, needle: str):
  6.     i = 0
  7.     m = len(needle)
  8.     n = len(haystack)
  9.     contains = False
  10.  
  11.     # bikin perulangan dari 0 sampai dengan panjang haystack dikurangi panjang needle
  12.     while (i <= n - m) and not contains:
  13.         j = 0
  14.         # perulangan dari 0 sampai dengan panjang needle
  15.         # dan jika karakter haystack ke-i+j sama dengan karakter pada needle ke-j
  16.         # (cocokan satu per satu karakter pada needle dan haystack)
  17.         while (j < m) and (haystack[i+j] == needle[j]):
  18.             j += 1
  19.  
  20.         # jika j sama dengan panjang needle (berarti semua karakter cocok)
  21.         if j == m:
  22.             contains = True
  23.         else:
  24.             # jika tidak maka i di increment dan ulangi langkah loop ke-2 (pencocokan setiap karakter)
  25.             i += 1
  26.  
  27.     # jika ketemu balikan i, yaitu indeks needle yang ada pada haystack
  28.     # jika tidak ketemu balikan -1.
  29.     return i if contains else -1
  30.  
  31. string_contains('NOBODY NOTICED HIM', 'NOT')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement