အိုင်ပီလိပ်စာ Leetcode Solution ကိုသတ်မှတ်ခြင်း


ခက်ခဲအဆင့် လွယ်ကူသော
မကြာခဏမေးတယ် အမေဇုံ
ကြိုး မင်းဘူး

ပြProbleနာဖော်ပြချက်

ဤပြproblemနာတွင်ကျွန်ုပ်တို့အား IP လိပ်စာတစ်ခုပေးသည်။ ၎င်းကို Defanged IP Address သို့ပြောင်းလဲရန်လိုအပ်သည်။ ဆိုလိုသည်မှာကျွန်ုပ်တို့၏ output string တွင်“ ။ ” အားလုံးဖြစ်သည်။ "[။ ]" ကူးပြောင်းနေကြသည်။

အိုင်ပီလိပ်စာ Leetcode Solution ကိုသတ်မှတ်ခြင်း

နမူနာ

#1:

address = "1.1.1.1"
"1[.]1[.]1[.]1"

#2:

address = "255.100.50.0"
"255[.]100[.]50[.]0"

ချဉ်းကပ်နည်း ၁ (String Stream / Builder ကိုအသုံးပြုခြင်း)

ဤပြproblemနာအတွက်ကျွန်ုပ်တို့သည်ပေးထားသော string ကိုပြုပြင်ရန်ရိုးရှင်းသော string stream သို့မဟုတ် builder class ကိုသုံးနိုင်သည်။
ငါတို့ကသုံးနိုင်တယ် string ကိုတည်ဆောက် (java ၏အမှု၌) နှင့် string ကိုစီး (C ++ ၏အမှု၌) ပေးထားသော string ကို output ကို string ကိုပြောင်းလဲရန်။
ကျနော်တို့ input ကို string ကိုမှလက်ဝဲမှညာဘက်ဖြတ်သန်းပါလိမ့်မယ်။ မည်သည့်ဇာတ်ကောင် '' ဖြစ်ပါတယ်လျှင်။ ' ထို့နောက်ကျွန်ုပ်တို့သည် [[။ ]” output string ကိုဖြည့်ပါလိမ့်မည်။ ဒီလိုမှမဟုတ်ရင်ကျနော်တို့ output ကို string ကိုအတွက်လည်းဇာတ်ကောင်ဖြည့်စွက်ပါလိမ့်မယ်။

algorithm

  • တစ် ဦး အချည်းနှီးသောကြိုးစီးသို့မဟုတ်တည်ဆောက်ပါ။
  • ပေးထားသော string တစ်ခုစီ၏ character တစ်ခုစီကိုဖြတ်သန်းရန် for loop ကိုအသုံးပြုပါ။
  • string ကိုအတွက်တစ် ဦး ချင်းစီဇာတ်ကောင်သည်။ ဇာတ်ကောင် '' ဖြစ်တယ်ဆိုရင်။ " ထို့နောက် "[။ ]" string ကိုတည်ဆောက်ရန်ဖြည့်ပါ။ အခြားသည် string builder နှင့်တူညီသောဇာတ်ကောင်ကိုထပ်ပေါင်းထည့်သည်။
  • stream / builder ကို string သို့ပြောင်းပြီးပြန်ပို့ပါ။

IP Address Leetcode Solution ကို Defanging လုပ်ရန်အတွက်အကောင်အထည်ဖော်ခြင်း

C ++ အစီအစဉ်

#include <iostream>
#include <sstream>
using namespace std;
string defangIPaddr(string address) 
{
    std::stringstream ss;

    for(int i=0;i<address.length();i++){
        if(address[i]=='.'){
            ss<<"[.]";//replacing . with [.]
        }else{
            ss<<address[i];
        }
    }
    return ss.str();
}

int main()
{
    cout << defangIPaddr("1.1.1.1");
}
1[.]1[.]1[.]1

Java အစီအစဉ်

import java.util.*;
import java.lang.*;

class Solution
{  
    public static String defangIPaddr(String address) 
    {
        StringBuilder sb=new StringBuilder();
        for(int i=0;i<address.length();i++){
            if(address.charAt(i)=='.'){
                sb.append("[.]");
            }else{
                sb.append(address.charAt(i));
            }
        }
        return sb.toString();
    }
    
    public static void main(String args[])
    {
        System.out.println(defangIPaddr("1.1.1.1"));
    }
}
1[.]1[.]1[.]1

IP Address Leetcode Solution ကိုဖီဆန်ခြင်းအတွက်ရှုပ်ထွေးမှုဆန်းစစ်ခြင်း

အချိန်ရှုပ်ထွေး

အို ()) ကျွန်ုပ်တို့သည်ပေးထားသော string ကို linear အဖြစ်ဖြတ်သန်းသွားသည်။ ထို့ကြောင့်၎င်းသည်အို (n) ဖြစ်သည်။

အာကာသရှုပ်ထွေးမှု 

အို ()) java တွင် string builder ကို သုံး၍ linear extra space နှင့် C ++ တွင် string stream ကိုအသုံးပြုသည်။ ထို့ကြောင့်ရှုပ်ထွေးမှုမှာ O (n) ဖြစ်သည်။

ချဉ်းကပ်နည်း ၂ (In-built Function ကိုအသုံးပြုခြင်း)

regex အစား function ကို C ++ တွင်သုံးပြီး java ရှိ function အားလုံးကိုအစားထိုးမည်။

regex_replace function ကို C ++ ကိုသုံးနိုင်သည်။ "[။ ]" ရန်။
ထို့အပြင်၊ java ကိစ္စတွင်“ allAll” ကိုအစားထိုးရန် replaceAll () function ကိုသုံးနိုင်သည်။ "[။ ]" ရန်။

IP Address Leetcode Solution ကို Defanging လုပ်ရန်အတွက်အကောင်အထည်ဖော်ခြင်း

C ++ အစီအစဉ်

#include <iostream>
#include <regex>
using namespace std;
string defangIPaddr(string address) 
{
        return regex_replace(address, regex("[.]"), "[.]");
    //. is covered by [] from both sides because . itself works as pipe and will give wrong result if not used like [.] 
}

int main()
{
    cout << defangIPaddr("1.1.1.1");
}
1[.]1[.]1[.]1

Java အစီအစဉ်

import java.util.*;
import java.lang.*;

class Solution
{  
    public static String defangIPaddr(String address) 
    {
        /*
        A period (.) has a special meaning there as does a pipe (|) as does a curly brace (}).       
        You need to escape them all using // before '.'.
        */
        return address.replaceAll("\\.","[.]");
    }
    
    public static void main(String args[])
    {
        System.out.println(defangIPaddr("1.1.1.1"));
    }
}
1[.]1[.]1[.]1

IP Address Leetcode Solution ကိုဖီဆန်ခြင်းအတွက်ရှုပ်ထွေးမှုဆန်းစစ်ခြင်း

အချိန်ရှုပ်ထွေး

အချိန်ရှုပ်ထွေးမှုသည်ကြိုတင်သတ်မှတ်ထားသောလုပ်ဆောင်ချက်များ၏အတွင်းပိုင်းအကောင်အထည်ဖော်မှုပေါ်မူတည်သည်။

အာကာသရှုပ်ထွေးမှု 

အာကာသဆိုင်ရာရှုပ်ထွေးမှုသည်ကြိုတင်သတ်မှတ်ထားသောလုပ်ဆောင်ချက်များ၏အတွင်းပိုင်းအကောင်အထည်ဖော်မှုပေါ်တွင်လည်းမူတည်သည်။