fork download
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5.  
  6. typedef struct _stack {
  7. int top;
  8. char arr[51];
  9. }Stack;
  10.  
  11. void StackInit(Stack * pstack);
  12. void push(Stack * pstack, char data);
  13. char pop(Stack * pstack);
  14. int empty(Stack* pstack);
  15.  
  16. int main(void) {
  17. Stack stack;
  18. StackInit(&stack);
  19. char str[51];
  20. int T, len, det;
  21. scanf("%d", &T);
  22. for (int i = 1; i <= T; i++) {
  23. det = 1;
  24. scanf("%s", str);
  25. len = strlen(str);
  26. for (int j = 0; j < len; j++) {
  27. if (str[j] == '(')
  28. push(&stack, str[j]);
  29. else {
  30. if (empty(&stack)) {
  31. printf("NO\n");
  32. det = 0;
  33. break;
  34. }
  35. pop(&stack);
  36. }
  37. }
  38. if (empty(&stack) && det)
  39. printf("YES\n");
  40. else if(!empty(&stack) && det)
  41. printf("NO\n");
  42. }
  43. return 0;
  44. }
  45. void StackInit(Stack * pstack) {
  46. pstack->top = -1;
  47. }
  48. void push(Stack * pstack, char data) {
  49. pstack->top++;
  50. pstack->arr[pstack->top] = data;
  51. }
  52. char pop(Stack * pstack) {
  53. int data = pstack->arr[pstack->top];
  54. pstack->top--;
  55. return data;
  56. }
  57.  
  58. int empty(Stack* pstack) {
  59. if (pstack->top == -1)
  60. return 1;
  61. else
  62. return 0;
  63. }
  64.  
Success #stdin #stdout 0s 9424KB
stdin
2
(
)
stdout
NO
YES