Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.IOException;
- import java.util.NoSuchElementException;
- import java.util.Scanner;
- /**
- *
- * @author krste
- */
- interface Stack<E> {
- // Elementi na stekot se objekti od proizvolen tip.
- // Metodi za pristap:
- public boolean isEmpty();
- // Vrakja true ako i samo ako stekot e prazen.
- public E peek();
- // Go vrakja elementot na vrvot od stekot.
- // Metodi za transformacija:
- public void clear();
- // Go prazni stekot.
- public void push(E x);
- // Go dodava x na vrvot na stekot.
- public E pop();
- // Go otstranuva i vrakja elementot shto e na vrvot na stekot.
- }
- class ArrayStack<E> implements Stack<E> {
- private E[] elems;
- private int depth;
- @SuppressWarnings("unchecked")
- public ArrayStack(int maxDepth) {
- // Konstrukcija na nov, prazen stek.
- elems = (E[]) new Object[maxDepth];
- depth = 0;
- }
- public boolean isEmpty() {
- // Vrakja true ako i samo ako stekot e prazen.
- return (depth == 0);
- }
- public E peek() {
- // Go vrakja elementot na vrvot od stekot.
- if (depth == 0) {
- throw new NoSuchElementException();
- }
- return elems[depth - 1];
- }
- public void clear() {
- // Go prazni stekot.
- for (int i = 0; i < depth; i++) {
- elems[i] = null;
- }
- depth = 0;
- }
- public void push(E x) {
- // Go dodava x na vrvot na stekot.
- elems[depth++] = x;
- }
- public E pop() {
- // Go otstranuva i vrakja elementot shto e na vrvot na stekot.
- if (depth == 0) {
- throw new NoSuchElementException();
- }
- E topmost = elems[--depth];
- elems[depth] = null;
- return topmost;
- }
- }
- public class StackBukvi {
- static int proveri_t_posle_s(char[] St) {
- // Vasiot kod tuka
- ArrayStack<Character> stek = new ArrayStack<Character>(100);
- boolean poln = true,flag=false;
- int rez = 1;
- for (int i = 0; i < St.length; i++) {
- char c = St[i];
- if (c == 'S') {
- if (rez % 2 != 0) {
- poln = false;
- } else {
- poln = true;
- }
- rez++;
- }
- if (c == 'T') {
- if (!poln) {
- stek.push(c);
- } else {
- if(!stek.isEmpty())
- stek.pop();
- else
- flag=true;
- }
- }
- }
- int k=0;
- if (stek.isEmpty()) {
- k=1;
- } else if (flag) {
- k=0;
- }
- return k;
- }
- public static void main(String[] args) throws IOException {
- char[] niza = new char[100];
- Scanner f = new Scanner(System.in);
- String st = f.next();
- niza = st.toCharArray();
- int rez = proveri_t_posle_s(niza);
- System.out.println(rez);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement