[C++] 프로그래머스 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기

문제설명

문자열 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”


풀이

pat 문자열로 끝나는 가장 긴 문자열을 return하는 구현하는 문제입니다. rfind를 이용하여 위치를 찾은 뒤 pat 문자열 길이만큼 더한 길이만큼 substr로 문자열을 잘라서 문제를 풀 수 있었습니다.

#include <string>
#include <vector>

using namespace std;

string solution(string myString, string pat) {
    string answer = "";
    
    int pos = 0;
    
    pos = myString.rfind(pat);
    answer = myString.substr(0, pos + pat.length());
    
    return answer;
}


결과

코드 실행결과

Categories:

Updated:

Leave a comment