Leetcode Java Number of Segments in a String

업데이트:

문제

Link

코드

class Solution {

  public int countSegments(String s) {
    s = s.trim();
    int length = s.length();
    char[] charArray = s.toCharArray();
    int count = 0;
    if (length == 0) {
      return count;
    } else {
      for (int idx = 0; idx < length; idx++) {
        if (charArray[idx] == ' ' && charArray[idx + 1] != ' ') {
          count++;
        }
      }
      return count + 1;
    }
  }

}

결과

Link

설명

  1. 문자열 s가 주어지면 해당 문자열의 세그먼트의 수를 반환하는 문제이다.
    • 단, 세그먼트는 공백이 아닌 문자로 이루어진 문자열이다.
  2. 우선 문자열 s의 불필요한 좌우 공백을 제거해준다.

  3. 문제 풀이에 필요한 변수를 정의한다.
    • length는 좌우 공백을 제거한 s의 길이를 저장할 변수로, s의 길이로 초기화한다.
    • charArray는 자우 공백을 제거한 s를 문자 배열로 변환하여 사용할 변수로, s를 문자 배열로 변환하여 넣어준다.
    • count는 세그먼트 수를 계산할 변수로, 0으로 초기화한다.
  4. length가 0인 경우 세그먼트 또한 없으므로, 0을 주어진 문제의 결과로 반환한다.

  5. length가 0이 아닌 경우, 아래를 수행하여 세그먼트 수를 계산하여 $count + 1$을 주어진 문제의 결과로 반환한다.
    • 0부터 length 미만까지 idx를 증가시키며 idx번째 문자가 공백이고, $idx + 1$ 번쨰 문자가 공백이 아닌 세그먼트 시작 부분을 확인하면 count를 증가시킨다.
    • count가 아니라 $count + 1$을 반환하는 이유는, 처음 세그먼트를 count에 반영하지 않았기 때문이다.

소스

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

댓글남기기