လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP အကောင်အထည်ဖော်မှုအသေးစိတ်အချက်အလက်များအတွက်ကွင်းခတ်ထားသောကွင်းဆက်တစ်ခုစီ၏ contents များကိုပြောင်းပြန်

PHP အကောင်အထည်ဖော်မှုအသေးစိတ်အချက်အလက်များအတွက်ကွင်းခတ်ထားသောကွင်းဆက်တစ်ခုစီ၏ contents များကိုပြောင်းပြန်

M66 2025-09-24

ကွင်းခတ်တစ်ခုချင်းစီအကြား substrings unterts

စာလုံးအသေးများနှင့်ကွင်းခတ်များပါ 0 င်သော string တစ်ခုအနေဖြင့်အသေးအဖွဲ brackets မှစတင်ရန်ဖြစ်သည်။

နမူနာ

ရိုက်ထည့်ပါ

s = "(abcd)"

ထုတ်လုပ်မှု -

"DCBA"

ဥပမာ 2:

ရိုက်ထည့်ပါ

s = "(ဦး (ချစ်ခြင်းမေတ္တာ) ငါ)"

ထုတ်လုပ်မှု -

"ကိုယ်မင်းကိုချစ်တယ်"

ရှင်းလင်းချက် - "ချစ်ခြင်းမေတ္တာ" ကိုပထမ ဦး ဆုံးပြောင်းပါ။ ထို့နောက် string တစ်ခုလုံးကိုပြောင်းပြန်ပါ။

ဥပမာ 3:

ရိုက်ထည့်ပါ

s = "" (ed (et (et (et)) အယ်လ်)

ထုတ်လုပ်မှု -

"Leetcode"

ဖော်ပြချက် - ပထမအချက်မှာ "OC", ထို့နောက် "Etco" ကိုပြောင်းပြီးနောက်ဆုံးတွင် string တစ်ခုလုံးကိုကျွန်ုပ်တို့ရှာဖွေတွေ့ရှိခဲ့သည်။

သတ်ခြင်း

  • S တွင်စာလုံးအသေးများနှင့်ကွင်းခတ်များသာပါ 0 င်သည်။
  • ကွင်းခတ်မှုအားလုံးမျှတမှုရှိကြောင်းသေချာပါစေ။

အဖေြ

ကွင်းခတ်ခြင်းနှင့်အသိုက်ဖွဲ့စည်းပုံရှိအက္ခရာများကိုခြေရာခံရန် stack ကိုသုံးနိုင်သည်။ တိကျသောအဆင့်များမှာအောက်ပါအတိုင်းဖြစ်သည် -

  • string ကိုအတွက်ဇာတ်ကောင်တစ် ဦး ချင်းစီမှတဆင့်ကြားမှာ။
  • အကယ်. သင်သည်အဖွင့် bracket ကိုကြုံတွေ့ရလျှင် "(" ("(" ("(") ကိုတွန်းပါ။
  • အကယ်. ပိတ်ခြင်း bracket ကို ") ကိုကြုံတွေ့ရပါကအဖွင့် bracket ကို" ("(" ("(") အထိ stack ကနေ stack ထဲကနေဇာတ်ကောင်ပေါ်လာပြီး,
  • နောက်ဆုံးအနေဖြင့် stack ရှိ contents များကို inverted string ကိုရရန် concatate နေကြသည်။

PHP အကောင်အထည်ဖော်မှုကုဒ်ဥပမာ:

 <?php
// နမူနာ 1
echo reverseParentheses("(abcd)") . "\n";  // ထုတ်လုပ်ခြင်း:"dcba"

// နမူနာ 2
echo reverseParentheses("(u(love)i)") . "\n";  // ထုတ်လုပ်ခြင်း:"iloveu"

// နမူနာ 3
echo reverseParentheses("(ed(et(oc))el)") . "\n";  // ထုတ်လုပ်ခြင်း:"leetcode"
?>

ရှင်းလင်းဖေါ်ပြ

function ကို unform ကို untion ကိုထည့်သွင်းခြင်းအဖြစ် string ကိုယူပြီးအသိုက်ကွင်းခတ်ကိုင်တွယ်ရန် stack ကိုအသုံးပြုသည်။

  • ပိတ်ခြင်း bracket ကို ")") ကြုံတွေ့ရသောအခါ, အဖွင့် bracket ကနေအထိ stack ကနေဇာတ်ကောင်ကနေဇာတ်ကောင်တွေပေါ်လာတယ်။
  • popped ဇာတ်ကောင်ပြောင်းပြန်နှင့်သူတို့ကို stack မှသူတို့ကိုတွန်း။
  • အကယ်. ဇာတ်ကောင်များသည်ကွင်းခတ်များမဟုတ်လျှင်၎င်းတို့ကို stack ပေါ်တွင်တိုက်ရိုက်ထားရှိကြသည်။

နောက်ဆုံးအနေနဲ့နောက်ဆုံး string ကိုရရန် stack ရှိဒြပ်စင် concatenate ။ ဤနည်းလမ်းသည်အသိုက်လုပ်ထားသောကွင်းခတ်များကိုထိရောက်စွာကိုင်တွယ်နိုင်ပြီးကွင်းခတ်ထားသည့်ကွင်းဆက်တစ်ခုစီတွင်ပါ 0 င်သောအရာများကို inverting လုပ်ပြီးနောက်မှန်ကန်သောဇာတ်ကောင်အမိန့်ကိုသေချာစေသည်။