Guest User

Untitled

a guest
Jan 19th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. package Task;
  2.  
  3. import java.util.LinkedList;
  4. /*
  5. * simply stack (FILO) for char based on LinkedList<Character> functional..
  6. */
  7. public class MyStack {
  8. MyStack(){
  9. list=new LinkedList<Character>();
  10. }
  11.  
  12. /*
  13. * throws IndexOutOfBoundsException of LinkedList..
  14. */
  15. public Character pop() throws Exception{
  16. return list.remove(0);
  17. }
  18.  
  19. public Character top() throws Exception{
  20. return list.getFirst();
  21. }
  22.  
  23. public void push(Character c){
  24. list.addFirst(c);
  25. }
  26.  
  27. public boolean isEmpty(){
  28. return 0==list.size();
  29. }
  30.  
  31. /*
  32. * @param String str - sequence [ { ( ) } ] and some all characters..
  33. * Checking. is str it right bracket sequence?
  34. */
  35. public static boolean isCorrect(String str){
  36. MyStack stack = new MyStack();
  37. for(int i=0;i<str.length();++i){
  38. Character cStr =str.charAt(i);
  39. //if bracket - opening..
  40. if((cStr=='(')||(cStr=='{')||(cStr=='[')){
  41. stack.push(cStr);
  42. }else if((cStr==')')||(cStr=='}')||(cStr==']')){
  43. //if bracket - closing.. (testing because it may be not bracket (but numbers or smt. ))
  44. Character cStack;
  45. try {
  46. cStack = stack.pop();
  47. } catch (Exception e) {
  48. //open bracket is less than closing
  49. return false;
  50. }
  51. //parsing gotten character
  52. switch(cStack){
  53. case '(':
  54. if(cStr!=')')
  55. //i hope that != correctly work with Character and i not required use equals...
  56. //ok, it works..
  57. return false;
  58. break;
  59. case '{':
  60. if(cStr!='}')
  61. return false;
  62. break;
  63. case '[':
  64. if(cStr!=']')
  65. return false;
  66. break;
  67. };
  68. }
  69. }
  70.  
  71. if(stack.isEmpty())
  72. return true;
  73. else
  74. return false;
  75. }
  76.  
  77. private LinkedList<Character> list;
  78. }
Add Comment
Please, Sign In to add comment