Advertisement
Kame3

Букви

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