stefans

bukvi

Feb 10th, 2016
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. import java.io.IOException;
  2. import java.util.Scanner;
  3. import java.util.NoSuchElementException;
  4. import java.lang.*;
  5.  
  6. interface Stack<E> {
  7.  
  8. // Elementi na stekot se objekti od proizvolen tip.
  9.  
  10. // Metodi za pristap:
  11.  
  12. public boolean isEmpty();
  13. // Vrakja true ako i samo ako stekot e prazen.
  14.  
  15. public E peek();
  16. // Go vrakja elementot na vrvot od stekot.
  17.  
  18. // Metodi za transformacija:
  19.  
  20. public void clear();
  21. // Go prazni stekot.
  22.  
  23. public void push(E x);
  24. // Go dodava x na vrvot na stekot.
  25.  
  26. public E pop();
  27. // Go otstranuva i vrakja elementot shto e na vrvot na stekot.
  28. }
  29.  
  30. class ArrayStack<E> implements Stack<E> {
  31. private E[] elems;
  32. private int depth;
  33.  
  34. @SuppressWarnings("unchecked")
  35. public ArrayStack(int maxDepth) {
  36. // Konstrukcija na nov, prazen stek.
  37. elems = (E[]) new Object[maxDepth];
  38. depth = 0;
  39. }
  40.  
  41.  
  42. public boolean isEmpty() {
  43. // Vrakja true ako i samo ako stekot e prazen.
  44. return (depth == 0);
  45. }
  46.  
  47.  
  48. public E peek() {
  49. // Go vrakja elementot na vrvot od stekot.
  50. if (depth == 0)
  51. throw new NoSuchElementException();
  52. return elems[depth - 1];
  53. }
  54.  
  55.  
  56. public void clear() {
  57. // Go prazni stekot.
  58. for (int i = 0; i < depth; i++) elems[i] = null;
  59. depth = 0;
  60. }
  61.  
  62.  
  63. public void push(E x) {
  64. // Go dodava x na vrvot na stekot.
  65. elems[depth++] = x;
  66. }
  67.  
  68.  
  69. public E pop() {
  70. // Go otstranuva i vrakja elementot shto e na vrvot na stekot.
  71. if (depth == 0)
  72. throw new NoSuchElementException();
  73. E topmost = elems[--depth];
  74. elems[depth] = null;
  75. return topmost;
  76. }
  77. }
  78.  
  79. public class StackBukvi {
  80. static int proveri_t_posle_s(char[] St) {
  81. // Vasiot kod tuka
  82. ArrayStack<Character> stek = new ArrayStack<Character>(St.length);
  83. boolean flag = false;
  84. for (int i = 0; i < St.length; i++) {
  85. if (St[i] == 'S'&&flag == false) {
  86. flag = true;
  87. } else if (St[i] == 'S' && flag == true) {
  88. flag = false;
  89. }
  90. if (St[i] == 'T' && flag == true) {
  91. stek.push(St[i]);
  92. }
  93. if (St[i] == 'T' && flag == false) {
  94. if (stek.isEmpty()) return 0;
  95. else stek.pop();
  96. }
  97. }
  98. if (stek.isEmpty()) return 1;
  99. else return 0;
  100. }
  101.  
  102. public static void main(String[] args) throws IOException {
  103. char[] niza = new char[100];
  104.  
  105. Scanner f = new Scanner(System.in);
  106. String st = f.next();
  107. niza = st.toCharArray();
  108.  
  109. int rez = proveri_t_posle_s(niza);
  110. System.out.println(rez);
  111. }
  112.  
  113.  
  114. }
Add Comment
Please, Sign In to add comment