Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.01 KB | None | 0 0
  1. import java.io.IOException;
  2. import java.util.ArrayList;
  3. import java.util.NoSuchElementException;
  4. import java.util.Scanner;
  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.     public ArrayStack() {
  42.     }
  43.  
  44.     public boolean isEmpty () {
  45.         // Vrakja true ako i samo ako stekot e prazen.
  46.         return (depth == 0);
  47.     }
  48.  
  49.  
  50.     public E peek () {
  51.         // Go vrakja elementot na vrvot od stekot.
  52.         if (depth == 0)
  53.             throw new NoSuchElementException();
  54.         return elems[depth-1];
  55.     }
  56.  
  57.  
  58.     public void clear () {
  59.         // Go prazni stekot.
  60.         for (int i = 0; i < depth; i++)  elems[i] = null;
  61.         depth = 0;
  62.     }
  63.  
  64.  
  65.     public void push (E x) {
  66.         // Go dodava x na vrvot na stekot.
  67.         elems[depth++] = x;
  68.     }
  69.  
  70.  
  71.     public E pop () {
  72.         // Go otstranuva i vrakja elementot shto e na vrvot na stekot.
  73.         if (depth == 0)
  74.             throw new NoSuchElementException();
  75.         E topmost = elems[--depth];
  76.         elems[depth] = null;
  77.         return topmost;
  78.     }
  79. }
  80.  
  81. public class StackBukvi {
  82.         static int proveri_t_posle_s(char [] St) {
  83.         boolean flag = false;
  84.         int br=0;
  85.         int j = 0;
  86.         ArrayList<Integer> br1 = new ArrayList<>();
  87.         ArrayStack<Character> arrayStack = new ArrayStack<>(1000);
  88.         for (char c : St) {
  89.             if (c == 'T'&&flag) {
  90.                 arrayStack.push(c);
  91.                 br1.add(j, ++br);
  92.                 continue;
  93.             }
  94.             if (!arrayStack.isEmpty()&&c == 'S') {
  95.                 arrayStack.clear();
  96.                 j++;
  97.                 br=0;
  98.             }
  99.             if (c == 'S') {
  100.                 arrayStack.push(c);
  101.                 flag = true;
  102.             }
  103.         }
  104.         if(!arrayStack.isEmpty()){
  105.             br1.remove(j);
  106.         }
  107.         for(int i = 0; i<br1.size()-1;i++){
  108.             if(!br1.get(i).equals(br1.get(i + 1))){
  109.                 return 0;
  110.             }
  111.         }
  112.         return 1;
  113.     }
  114.  
  115.  
  116.     public static void main(String[] args) throws IOException {
  117.         char [] niza=new char[100];
  118.    
  119.         Scanner f=new Scanner(System.in);
  120.         String st=f.next();
  121.         niza=st.toCharArray();
  122.        
  123.         int rez= proveri_t_posle_s(niza);
  124.         System.out.println(rez);
  125.     }
  126.    
  127.    
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement