본문 바로가기

코딩 테스트/프로그래머스

[Python] 프로그래머스 lv.0 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기

 

문제 분석

  • myString의 부분 문자열 중 pat으로 끝나는 가장 긴 문자열 찾아서 return

 

코드 설계

  • pat 문자가 나올때 까지 특정 list에 넣는데, 
  • 만약 pat 문자가 나오면 (길이만큼 확인) arr[
  • 문자열을 뒤에서부터 검사하는데 찾는 문자열이 있으면 맨 앞까지 return

 

정답 코드

def solution(myString, pat):
    answer = ''
    idx = myString.rfind(pat)
    answer = myString[:idx+len(pat)]
    return answer

pat 문자가 있는(시작하는) 문자의 index 찾고 거기서 부터 pat 길이만큼 answer에 넣고 return

 

다른 사람 풀이 1

solution = lambda x,y : x[x:r.index(y) + len(y)]

 

다른 사람 풀이 2

def solution(myString, pat):
    return myString[:len(myString) - myString[::-1].index(pat[::-1])]

 

다른 사람 풀이 3

def solution(myString, pat):
    return myString[0:myString.rfind(pat)] + pat