[코딜리티] codility lesson 7 Stacks and Queues - Nesting 100%

문제.

Programming language: Human language: 
A string S consisting of N characters is called properly nested if:
  • S is empty;
  • S has the form "(U)" where U is a properly nested string;
  • S has the form "VW" where V and W are properly nested strings.
For example, string "(()(())())" is properly nested but string "())" isn't.
Write a function:
int solution(char *S);
that, given a string S consisting of N characters, returns 1 if string S is properly nested and 0 otherwise.
For example, given S = "(()(())())", the function should return 1 and given S = "())", the function should return 0, as explained above.
Assume that:
  • N is an integer within the range [0..1,000,000];
  • string S consists only of the characters "(" and/or ")".
Complexity:
  • expected worst-case time complexity is O(N);
  • expected worst-case space complexity is O(1) (not counting the storage required for input arguments).
Copyright 2009–2017 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.

풀이.

// you can also use imports, for example:
// import java.util.*;

// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");

class Solution {
    public int solution(String S) {
        // write your code in Java SE 8
  if(S.length()%2 != 0 ) return 0;
  int result = 0;
  for( char i : S.toCharArray()){
   if( i == '(') result++;
   if( i == ')') result--;
   if(result<0) return 0 ;
  }
  if(result!=0) return 0 ;
  return 1;
    }
}

설명.

괄호가 잘 닫혀 있는지 확인하고 맞으면 1 틀리면 0.

이거 앞서서 Brackets 에서 삽질한 코드 중에 일부분 이였음.
작전1 커플링이 잘 이루어 졌는지만 검사 한다.
한번에 100%


댓글

이 블로그의 인기 게시물

[코딜리티] codility lesson 5 Frefix Sums - MinAvgTwoSlice 100%

구글 블로그 ( blogspot ) 라벨 위젯 을 카테고리 처럼 만들기

[코딜리티] codility lesson 7 Stacks and Queues - StoneWall 100%