هڪ اظهار ۾ بي مثال پارٿينسي جي سڃاڻپ ۽ نشان لڳائڻ


تڪليف جي سطح وچولو
بار بار پڇڻ ۾ TCS
چتي اسٽرنگ

هڪ اظهار جي مسئلي ۾ غير فنڊي پيشيزن جي نشاندهي ۽ نشاندهي ڪرڻ ۾ ، اسان هڪ ڏنو آهي جملو ڊيگهه جي ڊيگهه تي مشتمل آهي. وچٿري پيچ جو متوازن جوڙو ڳوليو ۽ 0 جي طور تي سڀني متوازن افتتاحي پيراٿيسس ، 1 طور تي متوازن بنده پيراٿيسس ۽ 1

مثال

ڏنل ڏنل اسٽرنگ کي s = “(((abc)) ((d))))” ۽ هتي اسان ڏنل اسٽرنگ کي استعمال ڪندي هڪ اظهار ۾ غير مماثلت قسطن جي نشاندهي ۽ نشان لڳايو.

هتي ، پهريون پيراگرافس آخري ٽئين سانحي سان توازن رکي ٿو. تنهن ڪري ، ترتيب ۽ افتتاح جي فريم کي 0 ۽ 1 سان ترتيب ڏيو.

  • ان کان پوءِ ، ٻئي پيراگيسس ذيلي ايڪسپريس “اي بي سي” جي ٻئي بند قائداعظم سان توازن ڪري ٿو ، تنهنڪري 0 ۽ 1 سان ترتيب ۽ ترتيب جي ماديت کي بالترتیب XNUMX ۽ XNUMX سان تبديل ڪريو.
  • ساڳي طرح ، ٽئين قياس آرائيز سبسيپشن “abc” جي پهرين بند قائداعظم سان توازن رکي ٿو ، ترتيب وارو افتتاح ۽ بند ڪرڻ واري ترتيب کي 0 ۽ 1 سان ترتيب ڏيو.
  • چوٿون افتتاحي اشاعت ذيلي بيان ”ٻ“ جي ٻئي بند قائداعظم سان توازن ڪري ٿو ، تنهنڪري 0 ۽ 1 سان بالترتیب افتتاح ۽ بند ڪرڻ واري قسط کي مٽايو.
  • ساڳي طرح ، پنجون افتتاحي پيراگرافس ذيلي ايڪسپريس “ڊي” جي پهرين بند قائداعظم سان توازن رکي ٿو ، ترتيب ۽ ترتيب جي مادي کي 0 ۽ 1 سان ترتيب ڏيو.
  • آخرڪار ، سڀني غير متوازن شيطاني شيءَ کي تبديل ڪريو -1.
  • تنهن ڪري نتيجو = 000abc1100d111-1-1

هڪ اظهار ۾ بي مثال پارٿينسي جي سڃاڻپ ۽ نشان لڳائڻ

داخل: s = “((a)”

پيداوار : -10ه1

داخل: s = “(a))”

پيداوار : 0ا1-1

الگوري لاءِ سڃاڻپ ۽ نشان بي مثال پارٿينسي لاءِ هڪ اظهار ۾

  1. ڊگهو هڪ اسٽرنگ جي ڊي شروع ڪريو جنهن ۾ هڪ اظهار شامل آهي.
  2. هڪ ٺاهيو اسٽيڪ ڊيٽا جو structureانچو.
  3. ڏنل اسٽرنگ ذريعي ڳوڙها ڪريو ۽ چيڪ ڪريو ته ڇا اسٽرنگ ۾ هاڻوڪي انڊيڪس جو ڪردار اوپن فنڊنگ جي برابر آهي ، دٻايو / موجوده انڊيڪس کي اسٽيڪ ۾ داخل ڪريو.
  4. ٻئي صورت ۾ جاچ ڪريو ته تار ۾ موجوده انڊيڪس ۾ ڪردار بند ڪرڻ جي پيڇو جي برابر آهي ، چڪاس ڪريو ته ڇا اسٽيڪ خالي آهي ، واري اسٽرنگ ۾ موجوده انڊيڪس تي -1 کي بدلائي يا تازه ڪريو. ايلس سڀني افتتاحي قائداعظم کي 0 سان تبديل ڪريو ۽ 1 سان ڳن parentيل قائداعظم بند ڪريو.
  5. جڏهن اسٽيڪ خالي نه هوندي آهي ، اسٽيڪ جي سڀني ڪردارن کي تازه ڪاري ڪريو -1.
  6. تازه ٿيل اسٽرنگ ڇپايو.

سي ++ پروگرام هڪ اظهار ۾ بي مثال پارٿينسيز کي سڃاڻڻ ۽ نشان لڳائڻ

#include <bits/stdc++.h> 
using namespace std; 
  
void identifyParenthesis(string s){
    stack<int> st; 
  
    for(int i = 0; i < s.length(); i++){ 
        if(s[i] == '('){  
            st.push(i); 
        }
          
        else if(s[i] == ')'){ 
  
            if(st.empty()){  
                s.replace(i, 1, "-1"); 
            }
              
            else{ 
                s.replace(i, 1, "1"); 
                s.replace(st.top(), 1, "0"); 
                st.pop(); 
            } 
        } 
    } 
  
    while(!st.empty()){ 
        s.replace(st.top(), 1, "-1"); 
        st.pop(); 
    } 
  
    cout << s << endl; 
} 
  
int main(){ 
    string s = "(a))"; 
    
    identifyParenthesis(s); 
    
    return 0; 
}
0a1-1

جاوا پروگرام هڪ اظهار ۾ بي مثال پارٿينسن جي سڃاڻپ ۽ نشان لڳائڻ

import java.util.*; 
  
class MarkParenthesis{ 
    
    static void identifyParenthesis(StringBuffer s){  
        Stack<Integer> st = new Stack<Integer>();  
      
        for(int i = 0; i < s.length(); i++){  
            if (s.charAt(i) == '('){  
                st.push(i);  
            }
              
            else if(s.charAt(i) == ')'){  
                if(st.empty()){  
                    s.replace(i, i + 1, "-1");  
                }
                  
                else{  
                    s.replace(i, i + 1, "1");  
                    s.replace(st.peek(), st.peek() + 1, "0");  
                    st.pop();  
                }  
            }  
        }  
      
        while(!st.empty()){  
            s.replace(st.peek(), 1, "-1");  
            st.pop();  
        }  
      
        System.out.println(s); 
    }  
      
    public static void main(String[] args){
        
        StringBuffer s = new StringBuffer("(a))");  
        identifyParenthesis(s);  
        
    } 
}
0a1-1

پيچيدگي تجزيي

وقت جي پيچيدگي: o (n) جتي n ڏنل بيان ۾ ڪردارن جو تعداد آهي.

خلائي پيچيدگي: اي (ن) ڇاڪاڻ ته اسان اين عنصرن کي رکڻ جي جڳهه استعمال ڪئي هئي.

حوالا