Leetcode Java Is Subsequence

업데이트:

문제

Link

코드

class Solution {

  public boolean isSubsequence(String s, String t) {
    int index = -1;
    for (int idx = 0; idx < s.length(); idx++) {
      index = t.indexOf(s.charAt(idx), index + 1);
      if (index == -1) {
        return false;
      }
    }
    return true;
  }

}

결과

Link

설명

  1. 주어진 문자열 s가 t의 부분 문자들로 이루어졌는지를 검증하는 문제이다.
    • 단 s와 t의 문자들의 순서는 차례대로 유지되어야 한다.
    • 예를 들어, t가 “asbdc”이면 s가 “abc”이면 true이고 “acb”이면 false가 된다.
  2. 문자의 위치를 저장하기 위한 index를 -1로 정의한다.

  3. 0부터 s의 길이만큼 idx를 증가시키며 반복하여 검증을 수행한다.
    • index에 t에서 $index + 1$번째 이후 문자들 중 s의 idx번째 문자의 위치 값을 넣어준다.
    • 위의 검증에서 해당 문자가 없어 index가 -1인 경우, false를 주어진 문제의 결과로 반환한다.
    • 그렇지 않은 경우, 반복을 계속 수행한다.
  4. 반복이 완료되면 s가 t의 부분 문자들로 이루어져 있으므로, true를 주어진 문제의 결과로 반환한다.

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기