Menu
CoddyTech

Longest Common Substring

두 문자열 s1과 s2가 주어집니다. 부분 문자열은 문자열에서 가져온 끊기지 않고 이어진 글자들의 나열로, 예를 들어 clockwork에서 ork가 있습니다. s1과 s2에 공통으로 포함된 가장 긴 부분 문자열을 찾아 그 길이를 반환하세요. 두 문자열에 공통으로 나타나는 글자가 없으면 답은 0입니다.

함수

longestCommonSubstring(s1: string, s2: string) → integer
s1string
첫 번째 문자열
s2string
두 번째 문자열
반환값integer
두 문자열 모두에서 찾을 수 있는 가장 긴 문자 블록의 길이

제약 조건

  • 1 ≤ s1.length ≤ 1000
  • 1 ≤ s2.length ≤ 1000
  • s1과 s2는 영문 소문자로 이루어져 있습니다.

예제

입력
s1 = "clockwork"s2 = "workshop"
출력
4
설명
work는 clockwork를 끝내고 workshop을 시작하므로 길이가 4인 공통 부분 문자열이며, 두 문자열에 모두 나타나는 더 긴 블록은 없습니다.
challenge icon

후속 질문

롤링 해시를 사용해 주어진 길이 L의 공통 부분 문자열이 존재하는지 약 O(n + m) 시간에 검사한 다음, L에 대해 이진 탐색을 할 수 있나요?

코드 초기화
def longestCommonSubstring(s1, s2):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

테스트 #3

인자들

s1 = "clockwork"
s2 = "workshop"

예상 출력

4