브루투 포스(Bruth Force)는 검색 대상이 되는 원본 문자열의 처음부터 끝까지 차례대로 순회하며 문자들을 일일이 비교하는 방식의 고지식한 알고리즘으로 비교하고자 하는 문자열과 패턴을 한칸씩 이동하면서 비교하여 일치여부를 확인함.
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
def check(start, end):
chars = [0] * 128
for i in range(start, end + 1):
c = s[i]
chars[ord(c)] += 1
if chars[ord(c)] > 1:
return False
return True
n = len(s)
res = 0
for i in range(n): # 모든 위치의 시작 인덱스
for j in range(i, n): # 시작 위치에 대한 모든 길이의 끝 인덱스
if check(i, j): # 문제 조건의 여부
res = max(res, j - i + 1)
return res
'Programming > Algorithm' 카테고리의 다른 글
Tree Traversal (0) | 2022.07.23 |
---|---|
Dynamic Programming (0) | 2022.07.06 |
Sliding Window Algorithms (0) | 2022.03.31 |
Linked Lists (0) | 2022.03.30 |
Complexity of Algorithms (0) | 2022.03.29 |