Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cat stați acasa in medie?

Parere stare drum Sculeni - Chisi...

Necesit ajutor in gasirea a doua ...

Monitor 4k 27-28' PD USB C
 Vacanta Italia

Concediu Halkidiki

Ce vehicule motorizate ați avut d...

Router Asus nu se conecteaza WAN
 Gradina, copaci, arbusti si plant...

Trackpoint Thinkpad

Legare boiler electric trifazat l...

Upgrade CPU pentru Lenovo ThinkCe...
 Mouse wireless multimode (2x BT +...

Durere incheietura piciorului

Reparatie tablou electronic

Dell U2722 USB Connectors
 

Valid brackets

- - - - -
  • Please log in to reply
12 replies to this topic

#1
MihaLzn

MihaLzn

    Junior Member

  • Grup: Members
  • Posts: 91
  • Înscris: 02.12.2013
Buna,

Imi poate spune cineva cum verific daca o secventa de paranteze {},[] sau () sunt valide sau nu?
In Java..

Multumesc.

#2
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,454
  • Înscris: 10.08.2005
Creezi un arbore
{ [ ( - cobori
} ] ) - urci

#3
MihaLzn

MihaLzn

    Junior Member

  • Grup: Members
  • Posts: 91
  • Înscris: 02.12.2013

 MarianG, on 02 aprilie 2019 - 16:58, said:

Creezi un arbore
{ [ ( - cobori
} ] ) - urci

si cum ar arata codul?

Mersi.

#4
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

 MihaLzn, on 02 aprilie 2019 - 16:59, said:


si cum ar arata codul?

Mersi.
Cu un stack. Cand deschizi o paranteza, push pe stack, cand inchizi una, verifici elementul din capul stackului si pop de pe stack daca e valid, altfel inseamna ca secventa e invalida.

Cum arata codul?

Aici esti pe aria professional, nu pe aria gradinita. Suntem aici sa te sustinem cu absolut orice, DAR TU trebuie sa transpiri, nu noi.

Scrii codul asa cum crezi ca intelegi ce ti-am zis, fie el si gresit sau incomplet, si noi iti spunem ce sa mai modifici.

Apoi tu modifici, si vii cu codul modificat pentru o noua runda de feedback.


Asa devii competent, nu cu mura-n gura.


Te astept.

#5
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,281
  • Înscris: 06.01.2007
Votez si eu cu stiva.

#6
MihaLzn

MihaLzn

    Junior Member

  • Grup: Members
  • Posts: 91
  • Înscris: 02.12.2013

 OriginalCopy, on 02 aprilie 2019 - 17:55, said:

Cu un stack. Cand deschizi o paranteza, push pe stack, cand inchizi una, verifici elementul din capul stackului si pop de pe stack daca e valid, altfel inseamna ca secventa e invalida.

Cum arata codul?

Aici esti pe aria professional, nu pe aria gradinita. Suntem aici sa te sustinem cu absolut orice, DAR TU trebuie sa transpiri, nu noi.

Scrii codul asa cum crezi ca intelegi ce ti-am zis, fie el si gresit sau incomplet, si noi iti spunem ce sa mai modifici.

Apoi tu modifici, si vii cu codul modificat pentru o noua runda de feedback.


Asa devii competent, nu cu mura-n gura.


Te astept.

import java.util.Scanner;
import java.util.Stack;

public class Pr_07_BalancedParentheses {
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
String Brackets = sc.nextLine();

Stack<Character> stack = new Stack<>();
boolean isBalanced = true;

for (int i = 0; i < brackets.length(); i++) {
char bracket = brackets.charAt(i);
if (bracket == '{' || bracket == '[' || bracket == '(') {
stack.push(bracket);
} else {
if (bracket == '}') {
bracket = '{';
} else if (bracket == ')') {
bracket = '(';
} else if (bracket == ']') {
bracket = '[';
}

if (stack.empty()) {
isBalanced = false;
break;
}

if (bracket == stack.peek()) {
stack.pop();
} else {
isBalanced = false;
break;
}
}
}

if (isBalanced) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}

#7
A10Warthog

A10Warthog

    Member

  • Grup: Moderators
  • Posts: 902
  • Înscris: 12.11.2017
Pastebin, ca să nu ne moară creierul: https://pastebin.com/v4rqJj5C

Unde a crăpat codul postat de tine, pe care l-ai copiat de aici după ce-ai șters comentariile?

Edited by A10Warthog, 02 April 2019 - 19:48.


#8
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,247
  • Înscris: 24.02.2007
Sursa: https://forum.tutori...ava-task-stacks

#9
Webbbob

Webbbob

    Member

  • Grup: Members
  • Posts: 637
  • Înscris: 22.03.2019
eu as parcurge fisierul si ptr fiecare { adaug iar ptr fiecare } scad, la sfarsitul fisierului acel numar trebuie sa fie 0 daca nu ai omis vreo acolada. sau  faci un search in tot fisierul numeri cate { ai apoi cate } si aduni si trebuie sa ai un nr par.

Edited by Webbbob, 02 April 2019 - 20:02.


#10
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,247
  • Înscris: 24.02.2007
Numarul nu-i suficient, conteaza si ordinea.

#11
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,281
  • Înscris: 06.01.2007
Eu as face o subrutina care sa contina un switch(), banuiesc ca si java are la fel ca si c++.
As elimina atribuirile alea si stack.peek() din moment ce pop returneaza deja valoarea citita de pe stiva.
Ceva de genul...
for (each bracket)
   switch(bracket)
   {
	  case '{':
	  case '[':
	  case '(':
		 stack.push(bracket);
		 break;
	  case '}':
		 if (stack=pop() != '{') return false;
	  case ']':
		 if (stack=pop() != '[') return false;
	  case ')':
		 if (stack=pop() != '(') return false;
   }
return true;



#12
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,454
  • Înscris: 10.08.2005

 Webbbob, on 02 aprilie 2019 - 20:00, said:

eu as parcurge fisierul si ptr fiecare { adaug iar ptr fiecare } scad, la sfarsitul fisierului acel numar trebuie sa fie 0 daca nu ai omis vreo acolada. sau  faci un search in tot fisierul numeri cate { ai apoi cate } si aduni si trebuie sa ai un nr par.
1 + 3 { 2 x [ 5 + 3 ) x (  2 - 4 } ]



#13
BubuTastatura

BubuTastatura

    Junior Member

  • Grup: Members
  • Posts: 232
  • Înscris: 29.03.2019

 MihaLzn, on 02 aprilie 2019 - 16:51, said:

Buna,

Imi poate spune cineva cum verific daca o secventa de paranteze {},[] sau () sunt valide sau nu?
In Java..

Multumesc.

https://www.geeksfor...heses-in-an-expression/
(vezi poza de mai jos daca linkul nu merge)
Attached File  addresa.png   1.99K   13 downloads

Edited by BubuTastatura, 03 April 2019 - 05:54.


Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate