அல்கோரிதம்naive pattern matching

Naive Pattern Matching (Brute-Force Substring Search) — நேரடி பொருத்தம்

TT
Testlaa Team
May 14, 20261 min read

நேரடி பொருத்தம் — ஒவ்வொரு தொடக்கத்திலும் எழுத்து எழுத்து ஒப்பீடு; O(n*m); KMPக்கு முன் அடிப்படை.

உண்மை உலகில் இது ஏன் முக்கியம்?

சிறிய கோப்பு — n,m சிறியது; நேரடி தெளிவு. கற்பித்தல் — முதலில் brute.

மையக் கருத்து (மாணவர்களுக்கான விளக்கம்)

மூன்று அடுக்கு: ஒவ்வொரு i; j ஒப்பீடு; j==m என பொருத்தம்.

Pythonில் முயற்சி செய்வோம்

def find_all(text: str, pat: str) -> list[int]:
    n, m = len(text), len(pat)
    if m == 0 or m > n:
        return []
    out = []
    for i in range(n - m + 1):
        if text[i : i + m] == pat:
            out.append(i)
    return out


print(find_all("abababa", "aba"))

அடிக்கடி நேரும் தவறுகள்

  • மேல் எல்லை ஒற்றைப் பிழை.
  • முதல் பொருத்தம் எதிர் அனைத்தும்.

முக்கியச் சுருக்கக் குறிப்புகள்

  • வேக முன் naive சரிபார்ப்பு.
  • முதல் mismatch — break.

Tags:

StringsPythonமாணவர்கள்