문제 설명
문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.
제한사항
5 ≤ myString ≤ 20
1 ≤ pat ≤ 5
pat은 반드시 myString의 부분 문자열로 주어집니다.
myString과 pat에 등장하는 알파벳은 대문자와 소문자를 구분합니다.
입출력 예
myString pat result
"AbCdEFG" "dE" "AbCdE"
"AAAAaaaa" "a" "AAAAaaaa"
class Solution {
public String solution(String myString, String pat) {
for(int i = myString.length() - 1; i >= 0; i--) {
if(i >= pat.length() - 1
&& myString.charAt(i) == pat.charAt(pat.length() - 1)
&& myString.substring(i - pat.length() + 1, i + 1).equals(pat)) {
return myString.substring(0, i + 1);
}
}
return "";
}
}
이번은 내가 진짜로 잘못 풀었다.
class Solution {
public String solution(String myString, String pat) {
String answer = "";
int idx = myString.lastIndexOf(pat);
answer = myString.substring(0, idx) + pat;
return answer;
}
}
이런 식으로 lastIndexOf를 사용했어야 했다.
'코딩테스트 연습' 카테고리의 다른 글
2차원으로 만들기 (0) | 2024.04.20 |
---|---|
1로 만들기 (0) | 2024.04.20 |
문자열이 몇 번 등장하는지 세기 (0) | 2024.04.20 |
배열의 길이를 2의 거듭제곱으로 만들기 (0) | 2024.04.20 |
한 번만 등장한 문자 (0) | 2024.04.20 |