문제 설명
알파벳으로 이루어진 문자열 myString과 pat이 주어집니다. myString의 연속된 부분 문자열 중 pat이 존재하면 1을 그렇지 않으면 0을 return 하는 solution 함수를 완성해 주세요.
단, 알파벳 대문자와 소문자는 구분하지 않습니다.
제한사항
1 ≤ myString의 길이 ≤ 100,000 1 ≤ pat의 길이 ≤ 300 myString과 pat은 모두 알파벳으로 이루어진 문자열입니다.
나의 코드
class Solution {
public int solution(String myString, String pat) {
return myString.toUpperCase().contains(pat.toUpperCase())?1:0;
}
}
다른 사람 코드
class Solution {
public int solution(String myString, String pat) {
int answer = 0;
String str = myString.toLowerCase();
String str2 = pat.toLowerCase();
if (str.indexOf(str2) != -1) {
return 1;
}
return 0;
}
}
indexOf()
메소드 사용
느낀 점
특정 문자열이 어느 문자열 안에 포함되는지 확인하는 메소드는 여러 개가 존재한다. 나는 그 중에서 contains()
메소드를 활용했고, 다른 사람 코드 중에서는 indexOf()
메소드를 활용한 코드도 있었다. 막상 문제를 만났을 때 잘 기억이 안났는데 이번 기회로 잘 정리해두고 가야겠다.
contains()
- 특정 문자열을 인수로 전달하여 존재하면 true, 그렇지 않으면 false가 반환
indexOf()
- 특정 문자열이 존재하면 해당 문자열의 첫 번째 인덱스가 반환되고 그렇지 않으면 -1이 반환