Advertisement
Guest User

Bukvi ASP

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