문제
내가 작성한 정답
for
class Solution {
public int solution(String myString, String pat) {
int answer = 0;
int len = myString.length();
int pp = pat.length();
for(int i=0; i<=len-pp; i++){
if(myString.substring(i,i+pp).equals(pat)) answer++;
}
return answer;
}
}
stream
class Solution {
public int solution(String myString, String pat) {
int answer = 0;
int len = myString.length();
int pp = pat.length();
for(int i=0; i<=len-pp; i++){
if(myString.substring(i,i+pp).equals(pat)) answer++;
}
return answer;
}
}
다른 사람들의 정답
startWith
class Solution {
public int solution(String myString, String pat) {
int cnt = 0;
for(int i=0; i<myString.length(); i++) {
// startsWith(pat)은 해당 부분 문자열이 pat으로 시작하는지 확인하는 메서드
if(myString.substring(i).startsWith(pat)){
cnt++;
}
}
return cnt;
}
}
현재 클래스 내에서 정의된 메서드 호출
class Solution {
public int solution(String myString, String pat) {
// myString에서 pat의 첫 번째 등장 위치를 찾는다. 찾지 못하면 -1을 반환
int idx = myString.indexOf(pat);
// pat가 존재하지 않으면 0 반환
// pat 존재하면 1 반환 후 solution메서드 반복
return idx == -1 ? 0 : (1 + solution(myString.substring(idx + 1), pat));
}
}
Share article