THE BEST PROGRAMMER
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

Parentheses Balance

3 مشترك

اذهب الى الأسفل

Parentheses Balance Empty Parentheses Balance

مُساهمة من طرف feras_kassar الأربعاء فبراير 19, 2014 11:49 am


Parentheses Balance

feras_kassar

الجنس : ذكر
عدد المساهمات : 78
السٌّمعَة : 1
تاريخ التسجيل : 19/02/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Parentheses Balance Empty رد: Parentheses Balance

مُساهمة من طرف MhdAlALwan الأربعاء فبراير 19, 2014 3:48 pm

يعطيكون العافية
انا عم بكتب هالكود بس عم يطلعلي time limit exceed
فيني اعرف وين المشكلة

الكود:
#include<iostream>
#include<string>
#include<stack>

using namespace::std;
int main()
{

    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
      
      
        stack<int>sta;

        string st;
        cin>>st;
        for(int i=0;i<st.length();i++)
        {
            if(st[i] == ')' && !sta.empty() )
            {
                while(sta.top() != '(' && !sta.empty())
                    sta.pop();
                if(!sta.empty())
                    sta.pop();
              
              
            }
            else if(st[i] == ']' && !sta.empty())
            {
                while(!sta.empty() && sta.top() != '[' )
                    sta.pop();
                if(!sta.empty())
                    sta.pop();
              
            }
            else
                sta.push(st[i]);
        }

        if(sta.empty())
            cout<< "Yes"<<endl;
        else
            cout<<"No"<<endl;
    }
}


عدل سابقا من قبل MhdAlALwan في الأربعاء فبراير 19, 2014 4:23 pm عدل 2 مرات

MhdAlALwan

الجنس : ذكر
عدد المساهمات : 3
السٌّمعَة : 0
تاريخ التسجيل : 19/02/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Parentheses Balance Empty رد: Parentheses Balance

مُساهمة من طرف feras_kassar الأربعاء فبراير 19, 2014 3:55 pm

جرب حالة الدخل التالية 

1
)(]

feras_kassar

الجنس : ذكر
عدد المساهمات : 78
السٌّمعَة : 1
تاريخ التسجيل : 19/02/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Parentheses Balance Empty رد: Parentheses Balance

مُساهمة من طرف MhdAlALwan الخميس فبراير 20, 2014 8:52 pm

بعد ازنك عدلتو بس لسا عم يطلعلي wrong answer

الكود:
#include<iostream>
#include<string>
#include<stack>

using namespace::std;
int main()
{
 
    int n;
    string st;
    cin>>n;
    bool chk;
    while(n--)
    {
        stack<int>sta;
        getline(cin,st);
        if(st.length() == 1 && st[0] == '\n')
        {
            cout<<"yes"<<endl;
            continue;
        }

        if(st.length() == 1 || st.length() % 2 != 0 )
        {
            cout<<"No"<<endl;
            continue;
        }

        for(int i=0;i<st.length();i++)
        {

            if(st[i] == '(' || st[i] == '[')
                sta.push(st[i]);
            else if(st[i] == ')' && !sta.empty() && sta.top() == '(')
                sta.pop();
            else if(st[i] == ']' && !sta.empty() && sta.top() == '[')
                sta.pop();
            else
                chk = 1;
        }

        if(sta.empty() && chk == 0)
            cout<< "Yes"<<endl;
        else
            cout<<"No"<<endl;
    }
}

MhdAlALwan

الجنس : ذكر
عدد المساهمات : 3
السٌّمعَة : 0
تاريخ التسجيل : 19/02/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Parentheses Balance Empty رد: Parentheses Balance

مُساهمة من طرف feras_kassar الجمعة فبراير 21, 2014 4:33 pm

في عندك 3 أخطاء:
1- Yes أول حرف كبير 
2- لازم تحط cin.get بعد ما تقرأ عدد حالات الدخل لأنو بكون في \n لسى ما قريتها 
3- لازم تحط chk=false بعد كل حالة دخل , أنت مالك عاطيها قيمة ابتدئية حتى

feras_kassar

الجنس : ذكر
عدد المساهمات : 78
السٌّمعَة : 1
تاريخ التسجيل : 19/02/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Parentheses Balance Empty رد: Parentheses Balance

مُساهمة من طرف MhdAlALwan السبت فبراير 22, 2014 12:33 pm

تمام زبطت يسلمو Very Happy

MhdAlALwan

الجنس : ذكر
عدد المساهمات : 3
السٌّمعَة : 0
تاريخ التسجيل : 19/02/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Parentheses Balance Empty رد: Parentheses Balance

مُساهمة من طرف علا السبت فبراير 22, 2014 2:26 pm

لو سمحت أنا عم يعطيني wrong answer مع انو ضبط معي وطلع الجواب بس ما بعرف وين المشكلة وهاد الكود..

الكود:
#include<iostream>
#include<string>
#include<stack>
using namespace::std;
int main()
{int n;
cin>>n;

for(int i=0;i<n;i++)
{
   string s;
   cin>>s;
   stack<char>st;
   int x=s.length();
   st.push(s[0]);
   for(int j=1;j<x;j++)
   {
      char tmp;
   bool l=st.empty();
   if(l)st.push(s[j]);
   else{
   tmp=st.top();
   if(tmp=='[')
      if(s[j]==']')
   st.pop();
      else
      st.push(s[j]);
   else if(tmp=='(')
      if(s[j]==')')
         st.pop();
      else
      st.push(s[j]);
   else st.push(s[j]);
   
   }}
bool t;
t=st.empty();
if(t)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
}

علا

الجنس : انثى
عدد المساهمات : 19
السٌّمعَة : 1
تاريخ التسجيل : 19/02/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Parentheses Balance Empty رد: Parentheses Balance

مُساهمة من طرف feras_kassar السبت فبراير 22, 2014 5:23 pm

في حالة ناقصة أنو اذا كان سطر فاضي لازم يطبع Yes

feras_kassar

الجنس : ذكر
عدد المساهمات : 78
السٌّمعَة : 1
تاريخ التسجيل : 19/02/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Parentheses Balance Empty رد: Parentheses Balance

مُساهمة من طرف علا السبت فبراير 22, 2014 8:31 pm

اي شكرا مشي الحال

علا

الجنس : انثى
عدد المساهمات : 19
السٌّمعَة : 1
تاريخ التسجيل : 19/02/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى