http://ercanbozkurt.blogspot.com.tr/2018/01/balanced-parentheses-java.html
Balanced Parentheses - Java (ArrayList)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.ArrayList; | |
import java.util.Scanner; | |
public class BalancedParentheses { | |
public static void main(String[] args) { | |
// http://ercanbozkurt.blogspot.com | |
System.out.println("Parantezleri giriniz:"); | |
Scanner sc = new Scanner(System.in); | |
String brackets = sc.nextLine(); | |
sc.close(); | |
ArrayList<Character> liste = new ArrayList<Character>(); | |
// Açılış parantezlerini depolayacak liste oluşturuluyor | |
boolean isBalanced = true; // Parantezlerin dengede olup olmadığını bildireceğimiz değişken dengede varsayımı ile tanımlanıyor | |
for (int i = 0; i < brackets.length(); i++) { // Parantezlerde döngü kuruluyor | |
char bracket = brackets.charAt(i); // Sıradaki parantez okunup char değişkene atılıyor | |
if (bracket == '{' || bracket == '[' || bracket == '(') { // Parantezin uygun 3lüdden birinin açılışı olup | |
// olmadığı denetleniyor | |
liste.add(bracket);// uygun ise koleksiyona ekleniyor | |
} else { | |
// kapanış ise hangi açılışla eslesmesi gerektiği tespit ediliyor | |
if (bracket == '}') { | |
bracket = '{'; | |
} else if (bracket == ')') { | |
bracket = '('; | |
} else if (bracket == ']') { | |
bracket = '['; | |
} | |
// acilis sonrasi gelirsek empty olamaz, kapanisla baslarsak ya da ac kapa kapa seklinde gelirsek bos buluruz | |
if (liste.isEmpty()) { | |
isBalanced = false; | |
break; // döngüden cıkabiliriz | |
} | |
if (bracket == liste.get(liste.size() - 1)) {// koleksiyondan koparmadan ilk eleman denetleniyor | |
liste.remove(liste.get(liste.size() - 1));// koparılıyor | |
} else { | |
isBalanced = false; | |
break; | |
} | |
} | |
} | |
if (isBalanced && liste.size()==0) { // Döngü bittiğinde durum kontrol ediliyor | |
System.out.println("DENGEDE"); | |
} else { | |
System.out.println("DENGEDE DEĞİL"); | |
} | |
} | |
} |
Hiç yorum yok:
Yorum Gönder