[Programmers] #181878 - 원하는 문자열 찾기 [Java][C++][Python]
대소문자를 구분하지 않고 한 문자열이 다른 문자열의 연속된 부분 문자열로 존재하는지 판별하는 문제.
[Programmers] #181878 - 원하는 문자열 찾기 [Java][C++][Python]
1. 아이디어
알파벳 대소문자를 구분하지 않으므로 myString과 pat을 모두 소문자로 바꾼 뒤, pat이 myString의 연속된 부분 문자열로 존재하는지 판정한다. 존재하면 1, 그렇지 않으면 0을 return한다.
2. 복잡도
| 접근 | 시간 | 공간 |
|---|---|---|
| 풀이 | $O(N \times M)$ | $O(N + M)$ |
($N$ = myString의 길이, $M$ = pat의 길이)
3. 코드
풀이 [Java][C++][Python]
1
2
3
4
5
class Solution {
public int solution(String myString, String pat) {
return myString.toLowerCase().contains(pat.toLowerCase()) ? 1 : 0;
}
}
1
2
3
4
5
6
7
8
9
#include <bits/stdc++.h>
using namespace std;
int solution(string myString, string pat) {
for (char& c : myString) c = tolower(c);
for (char& c : pat) c = tolower(c);
return myString.find(pat) != -1;
}
1
2
def solution(myString, pat):
return int(pat.lower() in myString.lower())
This post is licensed under CC BY 4.0 by the author.