
[내 풀이]
#include <string>
#include <vector>
using namespace std;
int solution(string myString, string pat) {
for (int i=0; i<myString.size(); i++)
{
myString[i] = tolower(myString[i]);
}
for (int i=0; i<pat.size(); i++)
{
pat[i] = tolower(pat[i]);
}
if(myString.length() < pat.length())
return 0;
else
{
for(int i=0; i<myString.length()-pat.length()+1; i++)
{
if(pat == myString.substr(i, pat.length()))
return 1;
}
}
return 0;
}
[다른 사람 풀이]
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(string myString, string pat) {
transform(myString.begin(),myString.end(),myString.begin(),::toupper);
transform(pat.begin(),pat.end(),pat.begin(),::toupper);
return myString.find(pat) != string::npos;
}
first부터 end까지 범위 내에서, d_first부터의 값을 op함수를 적용한 값으로 변경
- transform(pat.begin(),pat.end(),pat.begin(),::toupper);
이는 pat의 처음부터 끝까지 범위내에서, pat의 처음 값부터 범위 내 값을 전부 upper로 변경한다는 의미
특정 문자열을 찾을 때 유용
algorithm의 find함수와 string의 find함수의 차이는 다음 블로그 참고
https://8156217.tistory.com/21