Advertisement
fensa08

[APS] Kolokvium 1 - Bukvi

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