[알고리즘문제풀기] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기

silver's avatar
Apr 19, 2025
[알고리즘문제풀기] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기

문제

내가 작성한 정답

바로 return하기

class Solution { public String solution(String myString, String pat) { int len = myString.length(); for(int i=len; i>0; i--){ if(myString.substring(0,i).endsWith(pat)) return myString.substring(0,i); } return ""; } }

StringBuilder

class Solution { public String solution(String myString, String pat) { StringBuilder sb = new StringBuilder(); int len = myString.length(); for(int i=len; i>0; i--){ if(myString.substring(0,i).endsWith(pat)) { sb.append(myString.substring(0,i)); break; } break; } return sb.toString(); } }

endsWith 사용하지 않고 풀기

import java.util.*; class Solution { public String solution(String myString, String pat) { ArrayList<String> answer = new ArrayList<>(); int len = myString.length(), pp = pat.length(); for(int i=0; i<=len-pp; i++){ if(myString.substring(i,i+pp).equals(pat)) { answer.add(myString.substring(0,i+pp)); } } return answer.get(answer.size()-1); } } class Solution { public String solution(String myString, String pat) { String answer = ""; for(int i=myString.length(); i>=pat.length(); i--){ if(myString.substring(i-pat.length(),i).equals(pat)){ answer = myString.substring(0,i); break; } } return answer; } }

다른 사람들의 정답

lastIndexOf

: 해당 글자가 시작되는 위치의 첫 인덱스를 출력
class Solution { public String solution(String myString, String pat) { return myString.substring(0, myString.lastIndexOf(pat) + pat.length()); } }
 
Share article

silver