Computer Science/자료구조
[5.29] 07-1 브루트 포스법
토마토.
2021. 5. 29. 11:40
문자열 검색이란?
string searching - text에서 pattern의 위치를 찾아내는 것
브루트 포스법 알아보기
brute force method - 선형 검색을 확장한 '단순법' 알고리즘이다.
#브루트 포스법으로 문자열 검색하기
def bf_match(txt:str, pat:str) -> int:
pt = 0
pp = 0
while pt != len(txt) and pp != len(pat):
if txt[pt] == pat[pp]:
pt += 1
pp += 1
else:
pt = pt - pp + 1
pp = 0
return pt - pp if pp == len(pat) else -1
print(bf_match('youngjupark', 'park'))
멤버십 연산자와 표준 라이브러리를 사용한 문자열 검색
멤버십 연산자 membership operator - in/not in을 사용하여 검색하는 것
단, 그 위치는 알 수 없다.
ex) ptn in txt / ptn not in txt -> True / False
find, index 계열 함수로 구현하기
? ?
str.find(sub[, start[, end]])
str.rfind(sub[, start[, end]])
str.index(sub[, start[, end]])
str.rindex(sub[, start[, end]])