[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;
}
결과
Leave a comment